.text:1043F4A0 ; =============== S U B R O U T I N E ======================================= .text:1043F4A0 .text:1043F4A0 .text:1043F4A0 sub_1043F4A0 proc near ; CODE XREF: sub_1043F820+1Bp .text:1043F4A0 .text:1043F4A0 var_54 = dword ptr -54h .text:1043F4A0 var_50 = dword ptr -50h .text:1043F4A0 var_4C = dword ptr -4Ch .text:1043F4A0 var_48 = dword ptr -48h .text:1043F4A0 var_44 = word ptr -44h .text:1043F4A0 var_4 = dword ptr -4 .text:1043F4A0 arg_0 = dword ptr 4 .text:1043F4A0 .text:1043F4A0 sub esp, 54h .text:1043F4A3 mov eax, dword_10799610 .text:1043F4A8 xor eax, esp .text:1043F4AA mov [esp+54h+var_4], eax .text:1043F4AE mov ecx, [ebx+10h] .text:1043F4B1 mov eax, [esp+54h+arg_0] .text:1043F4B5 push ebp .text:1043F4B6 push esi .text:1043F4B7 mov esi, [ecx] .text:1043F4B9 cmp dword ptr [esi+294h], 0 .text:1043F4C0 push edi .text:1043F4C1 mov [esp+60h+var_50], offset aOctet ; "octet" .text:1043F4C9 mov [esp+60h+var_4C], esi .text:1043F4CD mov [esp+60h+var_54], 0 .text:1043F4D5 jz short loc_1043F4DF .text:1043F4D7 mov [esp+60h+var_50], offset aNetascii ; "netascii" .text:1043F4DF .text:1043F4DF loc_1043F4DF: ; CODE XREF: sub_1043F4A0+35j .text:1043F4DF cmp eax, 7 ; switch 8 cases .text:1043F4E2 ja loc_1043F7DA ; default .text:1043F4E2 ; jumptable 1043F4E8 cases 1,2 .text:1043F4E8 jmp ds:off_1043F800[eax*4] ; switch jump .text:1043F4EF .text:1043F4EF loc_1043F4EF: ; DATA XREF: .text:off_1043F800o .text:1043F4EF add dword ptr [ebx+18h], 1 ; jumptable 1043F4E8 cases 0,7 .text:1043F4F3 mov eax, [ebx+18h] .text:1043F4F6 cmp eax, [ebx+20h] .text:1043F4F9 jle short loc_1043F51C .text:1043F4FB pop edi .text:1043F4FC pop esi .text:1043F4FD mov dword ptr [ebx+8], 0FFFFFF9Eh .text:1043F504 mov dword ptr [ebx], 3 .text:1043F50A xor eax, eax .text:1043F50C pop ebp .text:1043F50D mov ecx, [esp+54h+var_4] .text:1043F511 xor ecx, esp .text:1043F513 call sub_10503847 .text:1043F518 add esp, 54h .text:1043F51B retn .text:1043F51C ; --------------------------------------------------------------------------- .text:1043F51C .text:1043F51C loc_1043F51C: ; CODE XREF: sub_1043F4A0+59j .text:1043F51C cmp dword ptr [esi+2C8h], 0 .text:1043F523 lea ebp, [ebx+160h] .text:1043F529 mov ecx, ebp .text:1043F52B jz short loc_1043F56A .text:1043F52D mov eax, 2 .text:1043F532 call sub_1043E750 .text:1043F537 mov eax, [ebx+10h] .text:1043F53A mov edx, [ebp+0] .text:1043F53D mov ecx, [eax] .text:1043F53F add edx, 4 .text:1043F542 mov [ecx+0DCh], edx .text:1043F548 mov eax, [esi+1A8h] .text:1043F54E mov ecx, [esi+1ACh] .text:1043F554 mov edx, eax .text:1043F556 and edx, ecx .text:1043F558 cmp edx, 0FFFFFFFFh .text:1043F55B jz short loc_1043F574 .text:1043F55D push ecx .text:1043F55E push eax .text:1043F55F push esi .text:1043F560 call sub_10438CE0 .text:1043F565 add esp, 0Ch .text:1043F568 jmp short loc_1043F574 .text:1043F56A ; --------------------------------------------------------------------------- .text:1043F56A .text:1043F56A loc_1043F56A: ; CODE XREF: sub_1043F4A0+8Bj .text:1043F56A mov eax, 1 .text:1043F56F call sub_1043E750 .text:1043F574 .text:1043F574 loc_1043F574: ; CODE XREF: sub_1043F4A0+BBj .text:1043F574 ; sub_1043F4A0+C8j .text:1043F574 mov eax, [ebx+10h] .text:1043F577 mov ecx, [eax] .text:1043F579 mov edx, [ecx+8614h] .text:1043F57F push 0 .text:1043F581 push 0 .text:1043F583 add edx, 1 .text:1043F586 push edx .text:1043F587 push esi .text:1043F588 call sub_10428070 .text:1043F58D mov edi, eax .text:1043F58F add esp, 10h .text:1043F592 test edi, edi .text:1043F594 mov [esp+60h+var_48], edi .text:1043F598 jnz short loc_1043F5AF .text:1043F59A lea eax, [edi+1Bh] .text:1043F59D pop edi .text:1043F59E pop esi .text:1043F59F pop ebp .text:1043F5A0 mov ecx, [esp+54h+var_4] .text:1043F5A4 xor ecx, esp .text:1043F5A6 call sub_10503847 .text:1043F5AB add esp, 54h .text:1043F5AE retn .text:1043F5AF ; --------------------------------------------------------------------------- .text:1043F5AF .text:1043F5AF loc_1043F5AF: ; CODE XREF: sub_1043F4A0+F8j .text:1043F5AF mov eax, [esp+60h+var_50] .text:1043F5B3 mov ecx, [ebx+154h] .text:1043F5B9 mov edx, [ebp+0] .text:1043F5BC push 0 .text:1043F5BE push eax .text:1043F5BF push 0 .text:1043F5C1 push edi .text:1043F5C2 push offset aSCSC ; "%s%c%s%c" .text:1043F5C7 push ecx .text:1043F5C8 add edx, 2 .text:1043F5CB push edx .text:1043F5CC call sub_10434A10 .text:1043F5D1 mov eax, edi .text:1043F5D3 add esp, 1Ch .text:1043F5D6 lea edx, [eax+1] .text:1043F5D9 lea esp, [esp+0] .text:1043F5E0 .text:1043F5E0 loc_1043F5E0: ; CODE XREF: sub_1043F4A0+147j .text:1043F5E0 mov cl, [eax] .text:1043F5E2 add eax, 1 .text:1043F5E5 test cl, cl .text:1043F5E7 jnz short loc_1043F5E0 .text:1043F5E9 sub eax, edx .text:1043F5EB mov edx, eax .text:1043F5ED mov eax, [esp+60h+var_50] .text:1043F5F1 lea edi, [eax+1] .text:1043F5F4 .text:1043F5F4 loc_1043F5F4: ; CODE XREF: sub_1043F4A0+15Bj .text:1043F5F4 mov cl, [eax] .text:1043F5F6 add eax, 1 .text:1043F5F9 test cl, cl .text:1043F5FB jnz short loc_1043F5F4 .text:1043F5FD sub eax, edi .text:1043F5FF cmp dword ptr [esi+2C8h], 0 .text:1043F606 mov edi, eax .text:1043F608 lea edi, [edi+edx+4] .text:1043F60C jz short loc_1043F63B .text:1043F60E mov eax, [esi+1A8h] .text:1043F614 mov esi, [esi+1ACh] .text:1043F61A mov ecx, eax .text:1043F61C and ecx, esi .text:1043F61E cmp ecx, 0FFFFFFFFh .text:1043F621 jz short loc_1043F63B .text:1043F623 push esi .text:1043F624 push eax .text:1043F625 push offset aLld ; "%lld" .text:1043F62A lea edx, [esp+6Ch+var_44] .text:1043F62E push 40h .text:1043F630 push edx .text:1043F631 call sub_10434A10 .text:1043F636 add esp, 14h .text:1043F639 jmp short loc_1043F642 .text:1043F63B ; --------------------------------------------------------------------------- .text:1043F63B .text:1043F63B loc_1043F63B: ; CODE XREF: sub_1043F4A0+16Cj .text:1043F63B ; sub_1043F4A0+181j .text:1043F63B mov [esp+60h+var_44], 30h .text:1043F642 .text:1043F642 loc_1043F642: ; CODE XREF: sub_1043F4A0+199j .text:1043F642 mov eax, [ebp+0] .text:1043F645 add eax, edi .text:1043F647 push eax .text:1043F648 push edi .text:1043F649 push ebx .text:1043F64A mov esi, offset aTsize ; "tsize" .text:1043F64F call sub_1043EA30 .text:1043F654 mov ecx, [ebp+0] .text:1043F657 add edi, eax .text:1043F659 add ecx, edi .text:1043F65B push ecx .text:1043F65C push edi .text:1043F65D push ebx .text:1043F65E lea esi, [esp+78h+var_44] .text:1043F662 call sub_1043EA30 .text:1043F667 mov edx, [ebx+158h] .text:1043F66D push edx .text:1043F66E push offset aD_1 ; "%d" .text:1043F673 add edi, eax .text:1043F675 mov eax, esi .text:1043F677 push 40h .text:1043F679 push eax .text:1043F67A call sub_10434A10 .text:1043F67F mov ecx, [ebp+0] .text:1043F682 add ecx, edi .text:1043F684 push ecx .text:1043F685 push edi .text:1043F686 push ebx .text:1043F687 mov esi, offset aBlksize ; "blksize" .text:1043F68C call sub_1043EA30 .text:1043F691 mov edx, [ebp+0] .text:1043F694 add edi, eax .text:1043F696 add edx, edi .text:1043F698 push edx .text:1043F699 push edi .text:1043F69A push ebx .text:1043F69B lea esi, [esp+0A0h+var_44] .text:1043F69F call sub_1043EA30 .text:1043F6A4 add esp, 40h .text:1043F6A7 add edi, eax .text:1043F6A9 mov eax, [ebx+1Ch] .text:1043F6AC push eax .text:1043F6AD push offset aD_1 ; "%d" .text:1043F6B2 mov ecx, esi .text:1043F6B4 push 40h .text:1043F6B6 push ecx .text:1043F6B7 call sub_10434A10 .text:1043F6BC mov edx, [ebp+0] .text:1043F6BF add edx, edi .text:1043F6C1 push edx .text:1043F6C2 push edi .text:1043F6C3 push ebx .text:1043F6C4 mov esi, offset aTimeout_0 ; "timeout" .text:1043F6C9 call sub_1043EA30 .text:1043F6CE add edi, eax .text:1043F6D0 mov eax, [ebp+0] .text:1043F6D3 add eax, edi .text:1043F6D5 push eax .text:1043F6D6 push edi .text:1043F6D7 push ebx .text:1043F6D8 lea esi, [esp+88h+var_44] .text:1043F6DC call sub_1043EA30 .text:1043F6E1 mov ecx, [ebx+10h] .text:1043F6E4 add esp, 28h .text:1043F6E7 add edi, eax .text:1043F6E9 mov eax, [ecx+38h] .text:1043F6EC mov edx, [eax+10h] .text:1043F6EF mov eax, [eax+18h] .text:1043F6F2 mov ecx, [ebp+0] .text:1043F6F5 push edx ; tolen .text:1043F6F6 mov edx, [ebx+14h] .text:1043F6F9 push eax ; to .text:1043F6FA push 0 ; flags .text:1043F6FC push edi ; len .text:1043F6FD push ecx ; buf .text:1043F6FE push edx ; s .text:1043F6FF call ds:sendto .text:1043F705 cmp eax, edi .text:1043F707 jz short loc_1043F72C .text:1043F709 call ds:__imp_WSAGetLastError .text:1043F70F push eax .text:1043F710 mov eax, [ebx+10h] .text:1043F713 push eax .text:1043F714 call sub_1044F4B0 .text:1043F719 mov ecx, [esp+68h+var_4C] .text:1043F71D push eax .text:1043F71E push offset aS_21 ; "%s" .text:1043F723 push ecx .text:1043F724 call sub_10433280 .text:1043F729 add esp, 14h .text:1043F72C .text:1043F72C loc_1043F72C: ; CODE XREF: sub_1043F4A0+267j .text:1043F72C mov edx, [esp+60h+var_48] .text:1043F730 push edx .text:1043F731 call sub_10428140 .text:1043F736 mov eax, [esp+64h+var_54] .text:1043F73A add esp, 4 .text:1043F73D pop edi .text:1043F73E pop esi .text:1043F73F pop ebp .text:1043F740 mov ecx, [esp+54h+var_4] .text:1043F744 xor ecx, esp .text:1043F746 call sub_10503847 .text:1043F74B add esp, 54h .text:1043F74E retn .text:1043F74F ; --------------------------------------------------------------------------- .text:1043F74F .text:1043F74F loc_1043F74F: ; CODE XREF: sub_1043F4A0+48j .text:1043F74F ; DATA XREF: .text:off_1043F800o .text:1043F74F cmp dword ptr [esi+2C8h], 0 ; jumptable 1043F4E8 case 6 .text:1043F756 push 6 .text:1043F758 jz short loc_1043F79E .text:1043F75A mov eax, ebx .text:1043F75C call sub_1043F420 .text:1043F761 add esp, 4 .text:1043F764 pop edi .text:1043F765 pop esi .text:1043F766 mov [esp+58h+var_54], eax .text:1043F76A pop ebp .text:1043F76B mov ecx, [esp+54h+var_4] .text:1043F76F xor ecx, esp .text:1043F771 call sub_10503847 .text:1043F776 add esp, 54h .text:1043F779 retn .text:1043F77A ; --------------------------------------------------------------------------- .text:1043F77A .text:1043F77A loc_1043F77A: ; CODE XREF: sub_1043F4A0+48j .text:1043F77A ; DATA XREF: .text:off_1043F800o .text:1043F77A push 4 ; jumptable 1043F4E8 case 4 .text:1043F77C mov eax, ebx .text:1043F77E call sub_1043F420 .text:1043F783 add esp, 4 .text:1043F786 pop edi .text:1043F787 pop esi .text:1043F788 mov [esp+58h+var_54], eax .text:1043F78C pop ebp .text:1043F78D mov ecx, [esp+54h+var_4] .text:1043F791 xor ecx, esp .text:1043F793 call sub_10503847 .text:1043F798 add esp, 54h .text:1043F79B retn .text:1043F79C ; --------------------------------------------------------------------------- .text:1043F79C .text:1043F79C loc_1043F79C: ; CODE XREF: sub_1043F4A0+48j .text:1043F79C ; DATA XREF: .text:off_1043F800o .text:1043F79C push 3 ; jumptable 1043F4E8 case 3 .text:1043F79E .text:1043F79E loc_1043F79E: ; CODE XREF: sub_1043F4A0+2B8j .text:1043F79E mov esi, ebx .text:1043F7A0 call sub_1043F460 .text:1043F7A5 add esp, 4 .text:1043F7A8 pop edi .text:1043F7A9 pop esi .text:1043F7AA mov [esp+58h+var_54], eax .text:1043F7AE pop ebp .text:1043F7AF mov ecx, [esp+54h+var_4] .text:1043F7B3 xor ecx, esp .text:1043F7B5 call sub_10503847 .text:1043F7BA add esp, 54h .text:1043F7BD retn .text:1043F7BE ; --------------------------------------------------------------------------- .text:1043F7BE .text:1043F7BE loc_1043F7BE: ; CODE XREF: sub_1043F4A0+48j .text:1043F7BE ; DATA XREF: .text:off_1043F800o .text:1043F7BE mov eax, [esp+60h+var_54] ; jumptable 1043F4E8 case 5 .text:1043F7C2 pop edi .text:1043F7C3 pop esi .text:1043F7C4 mov dword ptr [ebx], 3 .text:1043F7CA pop ebp .text:1043F7CB mov ecx, [esp+54h+var_4] .text:1043F7CF xor ecx, esp .text:1043F7D1 call sub_10503847 .text:1043F7D6 add esp, 54h .text:1043F7D9 retn .text:1043F7DA ; --------------------------------------------------------------------------- .text:1043F7DA .text:1043F7DA loc_1043F7DA: ; CODE XREF: sub_1043F4A0+42j .text:1043F7DA ; sub_1043F4A0+48j .text:1043F7DA ; DATA XREF: ... .text:1043F7DA push offset aTftp_send_firs ; default .text:1043F7DA ; jumptable 1043F4E8 cases 1,2 .text:1043F7DF push esi .text:1043F7E0 call sub_10433280 .text:1043F7E5 mov ecx, [esp+68h+var_4] .text:1043F7E9 mov eax, [esp+68h+var_54] .text:1043F7ED add esp, 8 .text:1043F7F0 pop edi .text:1043F7F1 pop esi .text:1043F7F2 pop ebp .text:1043F7F3 xor ecx, esp .text:1043F7F5 call sub_10503847 .text:1043F7FA add esp, 54h .text:1043F7FD retn .text:1043F7FD sub_1043F4A0 endp .text:1043F7FD .text:1043F7FD ; --------------------------------------------------------------------------- .text:1043F7FE align 10h .text:1043F800 off_1043F800 dd offset loc_1043F4EF ; DATA XREF: sub_1043F4A0+48r .text:1043F800 dd offset loc_1043F7DA ; jump table for switch statement .text:1043F800 dd offset loc_1043F7DA .text:1043F800 dd offset loc_1043F79C .text:1043F800 dd offset loc_1043F77A .text:1043F800 dd offset loc_1043F7BE .text:1043F800 dd offset loc_1043F74F .text:1043F800 dd offset loc_1043F4EF .text:1043F820