Function at 0x439430
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x5290f4]
movzx ecx, byte [eax + 0x400]
mov edx, dword [0x5290f4]
mov dword [edx + ecx*4], 0x66240000
mov eax, dword [0x5290f4]
mov cl, byte [eax + 0x400]
add cl, 1
mov edx, dword [0x5290f4]
mov byte [edx + 0x400], cl
mov ecx, dword [ebp + 0xc]
call fcn.00408a30
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 0xc]
call fcn.004081a0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jg 0x4394ac
jl 0x439493
cmp dword [ebp - 8], 0
jae 0x4394ac
mov eax, dword [ebp - 0xc]
push eax
push 0x4d690c
call fcn.0040cc80
add esp, 8
add eax, 9
jmp 0x439c10
mov ecx, dword [ebp + 0xc]
call fcn.00408210
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x38], 0x18
cmp dword [ebp + 0x10], 0x66
jl 0x4394dc
mov dword [ebp - 0x38], 0x18
push 0x14
push 0
lea ecx, [ebp - 0x34]
push ecx
call fcn.004bf170
add esp, 0xc
cmp dword [ebp + 0x10], 0x66
jge 0x439510
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.0041f1a0
add esp, 8
test eax, eax
je 0x439510
mov eax, 9
jmp 0x439c10
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp + 0xc]
call fcn.00408580
movzx ecx, al
test ecx, ecx
je 0x43953c
mov edx, dword [ebp - 0x18]
or edx, 2
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
call fcn.00408910
movzx ecx, al
test ecx, ecx
je 0x43955a
mov edx, dword [ebp - 0x18]
or edx, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
call fcn.0040b220
movzx ecx, al
test ecx, ecx
je 0x439578
mov edx, dword [ebp - 0x18]
or edx, 0x10
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
call fcn.0040b1f0
movzx ecx, al
test ecx, ecx
je 0x439596
mov edx, dword [ebp - 0x18]
or edx, 0x20
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
push 0x4d691c
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00438ab0
add esp, 0xc
test eax, eax
je 0x4395b9
mov eax, 9
jmp 0x439c10
push 0x4d6924
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00438c40
add esp, 0x10
test eax, eax
je 0x4395e0
mov eax, 9
jmp 0x439c10
cmp dword [ebp + 0x10], 0x66
jl 0x439636
push 0x4d692c
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00438c40
add esp, 0x10
test eax, eax
je 0x43960d
mov eax, 9
jmp 0x439c10
push 0x4d6934
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00438c40
add esp, 0x10
test eax, eax
je 0x439634
mov eax, 9
jmp 0x439c10
jmp 0x439651
cmp dword [0x56afc8], 2
jle 0x439651
push str._using_sft101_for_compatibility.__n
push 0x56b6c8
call fcn.0040c320
add esp, 8
push 0
push 0
mov eax, dword [ebp - 0xc]
push eax
push 0x4d6960
mov ecx, 0x56b6c8
call fcn.0040bf50
cmp dword [ebp + 0x10], 0x66
jge 0x4396a8
push 0
push 0x10
lea ecx, [ebp - 0x34]
push ecx
mov edx, dword [ebp + 8]
push edx
call sub.WS2_32.dll_send
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x10
je 0x4396a8
push 0xffffffffffffffff
call fcn.004847a0
add esp, 4
push eax
push 0x4d6968
call fcn.0040cc80
add esp, 8
add eax, 9
jmp 0x439c10
cmp dword [ebp + 0x10], 0x66
jge 0x4396d7
lea eax, [ebp - 0x34]
push eax
push 0
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00438cd0
add esp, 0x10
test eax, eax
je 0x4396d2
mov eax, 9
jmp 0x439c10
jmp 0x439b48
movzx eax, byte [ebp + 0x1c]
test eax, eax
jne 0x43975a
movzx ecx, byte [0x56b190]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x34]
and ecx, edx
push ecx
push 0
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00438cd0
add esp, 0x10
test eax, eax
je 0x439710
mov eax, 9
jmp 0x439c10
movzx edx, byte [0x56b190]
test edx, edx
je 0x439755
push 0
push 0x10
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp + 8]
push ecx
call sub.WS2_32.dll_send
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x10
je 0x439755
push 0xffffffffffffffff
call fcn.004847a0
add esp, 4
push eax
push 0x4d6980
call fcn.0040cc80
add esp, 8
add eax, 9
jmp 0x439c10
jmp 0x439b48
push 0x4d6998
mov edx, dword [ebp - 0xc]
push edx
call fcn.004bf4d0
add esp, 8
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jne 0x439793
mov eax, dword [ebp - 0xc]
push eax
push 0x4d699c
call fcn.0040cc80
add esp, 8
add eax, 9
jmp 0x439c10
lea ecx, [ebp - 0x260]
call fcn.004120c0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x128], 0xa
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov ecx, 1
test ecx, ecx
je 0x439af4
movzx edx, byte [0x567134]
test edx, edx
je 0x4397ff
push str.__waiting_for_i_o_commands._n
call fcn.0044d350
add esp, 4
push 0xc8
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.004bf170
add esp, 0xc
push 0
push 0xbe
lea ecx, [ebp - 0x108]
push ecx
mov edx, dword [ebp + 8]
push edx
call sub.WS2_32.dll_recv
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 0
jg 0x439881
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004bf349
add esp, 4
push 0xffffffffffffffff
call fcn.004847a0
add esp, 4
push eax
push str.unexpected_EOD_or_close___s_n
call fcn.0040cc80
add esp, 8
add eax, 9
mov dword [ebp - 0x278], eax
lea ecx, [ebp - 0x260]
call fcn.00412160
mov eax, dword [ebp - 0x278]
jmp 0x439c10
movzx ecx, byte [0x567134]
test ecx, ecx
je 0x4398a0
lea edx, [ebp - 0x108]
push edx
push str.__got_cmd:__s
call fcn.0044d350
add esp, 8
push str.SREAD
lea eax, [ebp - 0x108]
push eax
call fcn.0040dd40
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x4399e2
lea edx, [ebp - 0x102]
push edx
call fcn.00401b50
add esp, 4
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], edx
movzx eax, byte [0x56b190]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x260]
and eax, ecx
push eax
mov edx, dword [ebp - 0x26c]
push edx
mov eax, dword [ebp - 0x270]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004392f0
add esp, 0x18
test eax, eax
je 0x439959
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004bf349
add esp, 4
mov edx, dword [ebp - 0x270]
push edx
push str.failed_to_send_requested__d_bytes_n
call fcn.0040cc80
add esp, 8
add eax, 9
mov dword [ebp - 0x27c], eax
lea ecx, [ebp - 0x260]
call fcn.00412160
mov eax, dword [ebp - 0x27c]
jmp 0x439c10
movzx eax, byte [0x567134]
test eax, eax
je 0x439978
mov ecx, dword [ebp - 0x270]
push ecx
push str.__sent__d_n
call fcn.0044d350
add esp, 8
mov edx, dword [ebp - 0x110]
add edx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x10c]
adc eax, dword [ebp - 0x26c]
mov dword [ebp - 0x110], edx
mov dword [ebp - 0x10c], eax
push 0x4d6a34
push 0
push 0xf4240
mov ecx, dword [ebp - 0x10c]
push ecx
mov edx, dword [ebp - 0x110]
push edx
call fcn.004bec70
push edx
push eax
push 0
push 0xf4240
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.004bec70
push edx
push eax
mov ecx, 0x56b6c8
call fcn.0040c0c0
jmp 0x4397da
push str.SSUM
lea edx, [ebp - 0x108]
push edx
call fcn.0040dd40
add esp, 8
movzx eax, al
test eax, eax
je 0x439ad2
movzx ecx, byte [0x56b190]
test ecx, ecx
jne 0x439a47
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004bf349
add esp, 4
push str.unexpected_verify_request_n
call fcn.0040cc80
add esp, 4
add eax, 9
mov dword [ebp - 0x280], eax
lea ecx, [ebp - 0x260]
call fcn.00412160
mov eax, dword [ebp - 0x280]
jmp 0x439c10
movzx eax, byte [0x567134]
test eax, eax
je 0x439a5f
push str.__sending_sum_n
call fcn.0044d350
add esp, 4
push 0
push 0x10
lea ecx, [ebp - 0x260]
call fcn.00413330
push eax
mov ecx, dword [ebp + 8]
push ecx
call sub.WS2_32.dll_send
mov dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 0x10
je 0x439acd
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004bf349
add esp, 4
push 0xffffffffffffffff
call fcn.004847a0
add esp, 4
push eax
push str.failed_to_send_md5___s_n
call fcn.0040cc80
add esp, 8
add eax, 9
mov dword [ebp - 0x284], eax
lea ecx, [ebp - 0x260]
call fcn.00412160
mov eax, dword [ebp - 0x284]
jmp 0x439c10
jmp 0x4397da
push str.SCLOSE
lea eax, [ebp - 0x108]
push eax
call fcn.0040dd40
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x439aef
jmp 0x439af4
jmp 0x4397da
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004bf349
add esp, 4
cmp dword [0x56b184], 2
jge 0x439b3d
push 0
push 1
mov eax, dword [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.00401b10
add esp, 0x10
push eax
mov edx, dword [ebp - 0xc]
push edx
push 0x4d6a8c
push 0x56b6c8
call fcn.0040c320
add esp, 0x10
lea ecx, [ebp - 0x260]
call fcn.00412160
mov byte [ebp - 0xd], 0
cmp dword [ebp + 0x10], 0x65
jl 0x439b7a
movzx eax, byte [0x567134]
test eax, eax
je 0x439b6a
push str.__send_skip_n
call fcn.0044d350
add esp, 4
mov ecx, dword [ebp + 8]
push ecx
call fcn.00439100
add esp, 4
mov byte [ebp - 0xd], 1
movzx edx, byte [0x567134]
test edx, edx
je 0x439b92
push str.__wait_for_ack_n
call fcn.0044d350
add esp, 4
push 0xa
push 0
push 0x534818
call fcn.004bf170
add esp, 0xc
push 0
push 4
push 0x534818
mov eax, dword [ebp + 8]
push eax
call fcn.00438430
add esp, 0x10
movzx ecx, byte [ebp + 0x18]
test ecx, ecx
je 0x439bc2
jmp 0x439c0e
movsx edx, byte [0x534818]
push edx
call fcn.004bf842
add esp, 4
cmp eax, 0x6f
jne 0x439bee
movsx eax, byte [0x534819]
push eax
call fcn.004bf842
add esp, 4
cmp eax, 0x6b
jne 0x439bee
jmp 0x439c0e
mov ecx, 0x56b6c8
call fcn.0040c3c0
push 0x534818
mov ecx, dword [ebp - 0xc]
push ecx
push str.transfer_or_write_of_file_failed:__s______s__n
call fcn.0040cc80
add esp, 0xc
xor eax, eax
mov esp, ebp
pop ebp
ret