Function at 0x40df40
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x493b61
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7f4
push ebx
push esi
push edi
lea ecx, [ebp - 0x28]
call fcn.0040fc10
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.0040c300
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x244]
call fcn.0040aad0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x264]
call fcn.0040b930
mov byte [ebp - 4], 3
mov byte [ebp - 0x265], 0
mov byte [ebp - 0x266], 0
mov dword [ebp - 0x66c], 3
mov dword [ebp - 0x670], 0
lea ecx, [ebp - 0x264]
call fcn.0040c240
push eax
mov ecx, dword [ebp + 8]
call fcn.0040b150
push eax
call fcn.0043d648
add esp, 8
test eax, eax
je 0x40e056
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040de00
add esp, 8
movzx edx, al
test edx, edx
jne 0x40e054
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocketReTrySet_error__url___s_r_n
call fcn.0040a6e0
add esp, 8
mov byte [ebp - 0x7f9], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x264]
call fcn.0040b9d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x244]
call fcn.0040ac30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.0040c3d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004086b0
mov al, byte [ebp - 0x7f9]
jmp 0x40eb05
jmp 0x40e0a3
push str.TYPE_A_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
lea ecx, [ebp - 0x77c]
call fcn.0040a8d0
mov dword [ebp - 0x678], 0
mov dword [ebp - 0x674], 0
push 0xff
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x778]
push ecx
call fcn.0043da70
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x77c]
mov dword [eax + 0x1a8], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x77c]
mov dword [eax + 0x1ac], ecx
cmp dword [ebp - 0x66c], 0
je 0x40ea71
mov ecx, dword [ebp + 8]
call fcn.0040b510
mov dword [ebp - 0x780], eax
mov eax, dword [ebp - 0x780]
mov dword [ebp - 0x800], eax
mov ecx, dword [ebp - 0x800]
sub ecx, 1
mov dword [ebp - 0x800], ecx
cmp dword [ebp - 0x800], 9
ja case.0x40e141.6
mov edx, dword [ebp - 0x800]
jmp dword [edx*4 + 0x40eb16]
push 0x1388
mov ecx, dword [ebp + 8]
call fcn.0040b250
movzx eax, al
test eax, eax
jne 0x40e197
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x19c]
mov dword [ebp - 0x800], ecx
cmp dword [ebp - 0x800], 5
je 0x40e176
jmp 0x40e185
mov eax, dword [ebp + 8]
mov dword [eax + 0x1b0], 5
jmp 0x40e197
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1a0]
mov dword [eax + 0x1b0], edx
mov ecx, dword [ebp + 8]
add ecx, 0x188
call fcn.004164a0
mov dword [ebp - 0x784], eax
mov eax, dword [ebp - 0x784]
add eax, 1
push eax
call fcn.004684a3
add esp, 4
mov dword [ebp - 0x7f8], eax
mov ecx, dword [ebp - 0x7f8]
mov dword [ebp - 0x788], ecx
lea eax, [ebp - 0x788]
push eax
mov ecx, dword [ebp - 0x784]
push ecx
mov ecx, dword [ebp + 8]
add ecx, 0x188
call fcn.00416500
mov eax, dword [ebp - 0x784]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x188
call fcn.00416680
mov eax, dword [ebp - 0x788]
add eax, dword [ebp - 0x784]
mov byte [eax], 0
mov eax, dword [ebp - 0x788]
push eax
push 0
call fcn.0040a4d0
add esp, 8
mov eax, dword [ebp - 0x784]
push eax
mov ecx, dword [ebp - 0x788]
push ecx
lea ecx, [ebp - 0x64]
call fcn.0040c490
cmp dword [ebp - 0x788], 0
je 0x40e264
mov eax, dword [ebp - 0x788]
mov dword [ebp - 0x7f4], eax
mov ecx, dword [ebp - 0x7f4]
push ecx
call fcn.004684a8
add esp, 4
mov dword [ebp - 0x788], 0
mov dword [ebp - 0x78c], 0
jmp 0x40e27f
mov eax, dword [ebp - 0x78c]
add eax, 1
mov dword [ebp - 0x78c], eax
lea ecx, [ebp - 0x64]
call fcn.0040c840
cmp dword [ebp - 0x78c], eax
jge 0x40e945
mov eax, dword [ebp - 0x78c]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040c820
mov dword [ebp - 0x678], eax
mov eax, dword [ebp - 0x678]
mov dword [ebp - 0x800], eax
cmp dword [ebp - 0x800], 0xe2
jg 0x40e300
cmp dword [ebp - 0x800], 0xe2
je 0x40e914
mov ecx, dword [ebp - 0x800]
sub ecx, 0x7d
mov dword [ebp - 0x800], ecx
cmp dword [ebp - 0x800], 0x60
ja case.0x40e2f9.1
mov edx, dword [ebp - 0x800]
movzx eax, byte [edx + 0x40eb5a]
jmp dword [eax*4 + 0x40eb3e]
cmp dword [ebp - 0x800], 0x1a9
jg 0x40e351
cmp dword [ebp - 0x800], 0x1a9
je 0x40e88c
cmp dword [ebp - 0x800], 0xe3
je 0x40e6ec
cmp dword [ebp - 0x800], 0xe6
je 0x40e432
cmp dword [ebp - 0x800], 0x14b
je 0x40e3d4
jmp case.0x40e2f9.1
cmp dword [ebp - 0x800], 0x1aa
je 0x40e908
cmp dword [ebp - 0x800], 0x226
je 0x40e920
jmp case.0x40e2f9.1
lea ecx, [ebp - 0x264]
call fcn.0040c280
push eax
push str.USER__s_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 0xc
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
lea ecx, [ebp - 0x264]
call fcn.0040c2a0
push eax
push str.PASS__s_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 0xc
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
cmp dword [ebp - 0x674], 0
jne 0x40e48a
push str.TYPE_A_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp 0x40e4d7
push str.TYPE_I_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
cmp dword [ebp - 0x674], 0
jne 0x40e543
lea ecx, [ebp - 0x264]
call fcn.0040c260
push eax
push str.SIZE__s_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 0xc
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp 0x40e687
movzx eax, byte [0x4c6ee8]
test eax, eax
je 0x40e63a
lea ecx, [ebp - 0x7a8]
call fcn.0040fc10
mov byte [ebp - 4], 4
movzx eax, byte [ebp - 0x266]
test eax, eax
jne 0x40e5c5
lea eax, [ebp - 0x7a8]
push eax
lea ecx, [ebp - 0x244]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040d260
add esp, 0xc
movzx eax, al
test eax, eax
je 0x40e5ac
mov byte [ebp - 0x266], 1
lea ecx, [ebp - 0x7a8]
call fcn.004086d0
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp 0x40e5c3
push str.client_open_port_mode_error__r_n
call fcn.0040a6e0
add esp, 4
mov dword [ebp - 0x66c], 0
jmp 0x40e629
movzx eax, byte [ebp - 0x266]
test eax, eax
je 0x40e629
lea ecx, [ebp - 0x264]
call fcn.0040c260
push eax
push str.RETR__s_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 0xc
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7a8]
call fcn.004086b0
jmp 0x40e687
push str.PASV_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
lea ecx, [ebp - 0x64]
call fcn.0040c7c0
mov dword [ebp - 0x674], eax
push str.TYPE_I_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
lea ecx, [ebp - 0x264]
call fcn.0040c260
push eax
push str.RETR__s_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 0xc
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea ecx, [ebp - 0x64]
call fcn.0040c7e0
push eax
lea ecx, [ebp - 0x28]
call fcn.0040fc50
lea ecx, [ebp - 0x64]
call fcn.0040c800
mov dword [ebp - 0x670], eax
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
mov edx, dword [ebp - 0x670]
push edx
lea ecx, [ebp - 0x28]
call fcn.004086d0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0040d970
add esp, 0x14
mov byte [ebp - 0x265], al
movzx ecx, byte [ebp - 0x265]
test ecx, ecx
je 0x40e79c
push str.227_FtpPasvMode___ok._r_n
push 0
call fcn.0040a4d0
add esp, 8
jmp 0x40e7ab
push str.227_FtpPasvMode___error__r_n
push 0
call fcn.0040a4d0
add esp, 8
jmp case.0x40e2f9.1
movzx eax, byte [ebp - 0x265]
test eax, eax
jne 0x40e819
movzx eax, byte [0x4c6ee8]
test eax, eax
je 0x40e7ec
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040d480
add esp, 0x10
mov byte [ebp - 0x265], al
jmp 0x40e819
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
mov edx, dword [ebp - 0x670]
push edx
lea ecx, [ebp - 0x28]
call fcn.004086d0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0040d970
add esp, 0x14
mov byte [ebp - 0x265], al
jmp case.0x40e2f9.1
movzx eax, byte [ebp - 0x265]
test eax, eax
jne 0x40e887
movzx eax, byte [0x4c6ee8]
test eax, eax
je 0x40e85a
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040d480
add esp, 0x10
mov byte [ebp - 0x265], al
jmp 0x40e887
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
mov edx, dword [ebp - 0x670]
push edx
lea ecx, [ebp - 0x28]
call fcn.004086d0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0040d970
add esp, 0x14
mov byte [ebp - 0x265], al
jmp case.0x40e2f9.1
push str.hSocketGetFtpFile___:_425_data_connect_error__r_n
call fcn.0040a6e0
add esp, 4
push str.TYPE_I_r_n
lea eax, [ebp - 0x668]
push eax
call fcn.0043d4bb
add esp, 8
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.0043bad0
add esp, 4
push eax
lea ecx, [ebp - 0x668]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b4a0
push eax
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x668]
push eax
push 0
call fcn.0040a4d0
add esp, 8
movzx eax, byte [0x4c6ee8]
neg eax
sbb eax, eax
inc eax
mov byte [0x4c6ee8], al
mov eax, dword [ebp - 0x66c]
sub eax, 1
mov dword [ebp - 0x66c], eax
jmp case.0x40e2f9.1
mov dword [ebp - 0x66c], 0
jmp case.0x40e2f9.1
mov dword [ebp - 0x66c], 0
jmp case.0x40e2f9.1
mov eax, dword [ebp + 8]
mov byte [eax + 0x1a4], 1
mov dword [ebp - 0x66c], 0
jmp case.0x40e2f9.1
mov dword [ebp - 0x66c], 0
jmp 0x40e270
jmp case.0x40e141.6
mov dword [ebp - 0x66c], 0
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocket_EVENTS_CLOSE__url___s_r_n
call fcn.0040a6e0
add esp, 8
jmp case.0x40e141.6
mov dword [ebp - 0x66c], 0
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocket_EVENTS_CONNECT_ERROR__url___s_r_n
call fcn.0040a6e0
add esp, 8
jmp case.0x40e141.6
mov dword [ebp - 0x66c], 0
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocket_EVENTS_ERROR__url___s_r_n
call fcn.0040a6e0
add esp, 8
jmp case.0x40e141.6
mov eax, dword [ebp - 0x66c]
sub eax, 1
test eax, eax
jle 0x40e9c8
mov ecx, dword [ebp - 0x66c]
sub ecx, 1
mov dword [ebp - 0x800], ecx
jmp 0x40e9d2
mov dword [ebp - 0x800], 0
mov edx, dword [ebp - 0x800]
mov dword [ebp - 0x66c], edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040de00
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x77c]
mov dword [eax + 0x1a8], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x77c]
mov dword [eax + 0x1ac], ecx
mov dword [ebp - 0x674], 0
mov byte [0x4c6ee8], 0
cmp dword [ebp - 0x780], 5
jne 0x40ea39
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocket_EVENTS_TIMEOUT__url___s_r_n
call fcn.0040a6e0
add esp, 8
jmp 0x40ea4f
cmp dword [ebp - 0x780], 8
jne 0x40ea4f
push str.hSocketGetFtpFile___:_hSocket_EVENTS_WAIT_END_retry_connect._r_n
call fcn.0040a6e0
add esp, 4
jmp case.0x40e141.6
mov dword [ebp - 0x66c], 0
mov eax, dword [ebp + 0xc]
push eax
push str.hSocketGetFtpFile___:_hSocket_EVENTS_USER_CLOSE__url___s_r_n
call fcn.0040a6e0
add esp, 8
jmp 0x40e0f8
movzx eax, byte [ebp - 0x265]
test eax, eax
jne 0x40eaba
mov eax, dword [ebp + 0xc]
push eax
push str._s_error_r_n
push 0
call fcn.0040a4d0
add esp, 0xc
push 6
mov ecx, dword [ebp + 8]
call fcn.0040b460
mov dword [ebp - 0x7ac], eax
mov ecx, dword [ebp + 8]
call fcn.0040aef0
mov eax, dword [ebp - 0x7ac]
push eax
push 0
push 6
mov ecx, dword [ebp + 8]
call fcn.0040b4c0
mov al, byte [ebp - 0x265]
mov byte [ebp - 0x7ed], al
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x264]
call fcn.0040b9d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x244]
call fcn.0040ac30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.0040c3d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004086b0
mov al, byte [ebp - 0x7ed]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret