Function at 0x420e50
Capabilities:
Resolve function by parsing pe exports
Send data
Send data on socket

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [esp + 0x64]
push esi
push edi
test ebx, ebx
mov dword [esp + 0x18], ecx
je 0x42149b
mov eax, dword [ebx + 0x130]
mov ecx, dword [ebx + 0x26c]
mov dword [esp + 0x10], ecx
test byte [eax + 4], 8
jne 0x420e92
push str.550_Permission_denied._r_n
push ebx
call fcn.00420da0
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x5c
ret 0xc
mov eax, dword [ebx + 0x140]
test eax, eax
je 0x420eb2
push str.425_Youre_already_connected._r_n
push ebx
call fcn.00420da0
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x5c
ret 0xc
mov eax, dword [esp + 0x74]
mov esi, str.STAT
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420edf
test cl, cl
je 0x420edb
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420edf
add eax, 2
add esi, 2
test cl, cl
jne 0x420ebb
xor eax, eax
jmp 0x420ee4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x420f31
mov eax, dword [ebx + 0x13c]
test eax, eax
je 0x420f15
mov edi, dword [esp + 0x10]
push ebx
mov ecx, edi
call fcn.004214f0
test al, al
je 0x420f19
push str.150_Opening_data_connection_for_directory_list._r_n
push ebx
mov ecx, edi
call fcn.00420da0
mov dword [esp + 0x14], ebx
jmp 0x420f4e
mov edi, dword [esp + 0x10]
push str.425_Cant_open_data_connection._r_n
push ebx
mov ecx, edi
call fcn.00420da0
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x5c
ret 0xc
mov ecx, dword [esp + 0x10]
push str.213_Status_follows:_r_n
push ebx
call fcn.00420da0
mov edi, dword [esp + 0x10]
lea eax, [ebx + 0x134]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x70]
mov dword [ebx + 0x140], 1
test esi, esi
mov byte [esp + 0xf], 0
mov byte [esp + 0xe], 0
mov byte [esp + 0xd], 0
je 0x420fe8
cmp byte [esi], 0x2d
jne 0x420fe8
mov ecx, esi
inc esi
test ecx, ecx
je 0x420fc0
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.004777a3
add esp, 4
test eax, eax
je 0x420fc0
movsx eax, byte [esi]
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x420f9f.73
xor ecx, ecx
mov cl, byte [eax + 0x4214bc]
jmp dword [ecx*4 + 0x4214a8]
mov byte [esp + 0xf], 1
jmp case.0x420f9f.73
mov byte [esp + 0xe], 1
jmp case.0x420f9f.73
mov byte [esp + 0xd], 1
mov edx, esi
inc esi
test edx, edx
jne 0x420f7b
xor eax, eax
mov al, byte [esi]
push eax
call fcn.0047777b
add esp, 4
test eax, eax
je 0x420fe3
inc esi
xor ecx, ecx
mov cl, byte [esi]
push ecx
call fcn.0047777b
add esp, 4
test eax, eax
jne 0x420fd1
cmp byte [esi], 0x2d
je 0x420f74
mov eax, dword [ebx + 0x130]
push ebp
lea edx, [ebx + 0x150]
push esi
mov ecx, dword [eax + 0x14]
push edx
push ecx
mov ecx, edi
call fcn.00421b30
test eax, eax
mov dword [esp + 0x74], eax
je 0x421416
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00476f67
add esp, 8
test eax, eax
jne 0x421416
mov eax, dword [esp + 0x42]
and eax, 0xf000
cmp eax, 0x4000
jne 0x421416
mov cl, byte [0x4d0e20]
xor eax, eax
mov byte [esp + 0x20], cl
mov ecx, 6
lea edi, [esp + 0x21]
push 0x20c
rep stosd dword es:[edi], eax
call fcn.0048c144
mov ebp, eax
mov al, byte [esp + 0x16]
add esp, 4
test al, al
je 0x4211c7
lea edx, [esp + 0x60]
push edx
call fcn.00476e5d
push 0
mov ebx, eax
call fcn.00476cff
mov edx, dword [esp + 0x68]
add esp, 8
sub eax, edx
cmp eax, 0xed4e00
jle 0x4210aa
mov eax, dword [ebx + 0x14]
lea ecx, [esp + 0x20]
add eax, 0x76c
push eax
push 0x4c5178
push ecx
call fcn.004750c2
add esp, 0xc
jmp 0x4210c4
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
push edx
push eax
lea ecx, [esp + 0x28]
push str._02d:_02d
push ecx
call fcn.004750c2
add esp, 0x10
mov al, byte [esp + 0x11]
mov dword [esp + 0x1c], 0x4c2d8c
test al, al
jne 0x4210dc
mov dword [esp + 0x1c], 0x4d0e20
mov eax, dword [esp + 0x78]
mov esi, str.STAT
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x421109
test cl, cl
je 0x421105
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x421109
add eax, 2
add esi, 2
test cl, cl
jne 0x4210e5
xor eax, eax
jmp 0x42110e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x421131
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x130]
xor eax, eax
mov edi, dword [ecx + 0x14]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x74]
not ecx
dec ecx
add ecx, eax
jmp 0x421136
mov ecx, 0x4c5168
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push edx
mov edx, dword [ebx + 0x10]
push ecx
mov ecx, dword [ebx + 0xc]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + edx*4 + 0x2c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push ecx
push edx
push eax
mov eax, dword [esp + 0x5e]
mov cl, al
and cl, 0x40
sub cl, 0x40
neg cl
sbb cl, cl
and cl, 0xb5
add cl, 0x78
movsx edx, cl
mov cl, al
push edx
and cl, 0x80
sub cl, 0x80
neg cl
sbb cl, cl
and eax, 0x100
and cl, 0xb6
sub eax, 0x100
add cl, 0x77
neg eax
sbb al, al
and al, 0xbb
add al, 0x72
movsx edx, cl
movsx eax, al
push edx
push eax
push 0x64
push str._c_c_c_c_______1_user_group__14I64i__s__2d__s__s_s_r_n
push ebp
call fcn.004750c2
mov ecx, dword [esp + 0x4c]
add esp, 0x34
mov edx, dword [ecx]
push 0
push eax
push ebp
push edx
call dword [sym.imp.WS2_32.dll_send]
jmp 0x421412
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
push eax
call fcn.004218f0
mov esi, eax
test esi, esi
je 0x421416
mov ebx, dword [sym.imp.WS2_32.dll_send]
mov eax, dword [esp + 0x78]
mov edi, str.NLST
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x421212
test cl, cl
je 0x42120e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x421212
add eax, 2
add edi, 2
test cl, cl
jne 0x4211ee
xor eax, eax
jmp 0x421217
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x421250
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x130]
xor eax, eax
mov edi, dword [ecx + 0x14]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ecx + esi + 0x266]
push edx
push str._s_r_n
push ebp
call fcn.004750c2
add esp, 0xc
push 0
push eax
jmp 0x4213ec
mov edx, dword [esi + 0x128]
cmp byte [edx], 0x2e
jne 0x421267
mov al, byte [esp + 0x13]
test al, al
je 0x4213f6
push 0
call fcn.00476cff
mov edx, dword [esi + 0x15c]
add esp, 4
sub eax, edx
cmp eax, 0xed4e00
jle 0x4212a0
mov eax, dword [esi + 0x14c]
lea ecx, [esp + 0x20]
add eax, 0x76c
push eax
push 0x4c5178
push ecx
call fcn.004750c2
add esp, 0xc
jmp 0x4212c0
mov edx, dword [esi + 0x13c]
mov eax, dword [esi + 0x140]
push edx
push eax
lea ecx, [esp + 0x28]
push str._02d:_02d
push ecx
call fcn.004750c2
add esp, 0x10
mov al, byte [esp + 0x11]
test al, al
je 0x4212d7
mov al, byte [esi + 0x135]
test al, al
mov eax, 0x4c2d8c
jne 0x4212dc
mov eax, 0x4d0e20
mov edx, dword [esi + 0x128]
mov ecx, dword [esi + 0x144]
push eax
lea eax, [esp + 0x24]
push edx
mov edx, dword [esi + 0x148]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + edx*4 + 0x2c]
mov edx, dword [esi + 0x374]
mov eax, dword [esi + 0x370]
push ecx
mov cl, byte [esi + 0x134]
push edx
neg cl
sbb cl, cl
push eax
mov al, byte [esi + 0x133]
and cl, 0x4b
add cl, 0x2d
movsx edx, cl
neg al
sbb al, al
push edx
mov dl, byte [esi + 0x132]
and al, 0x4a
add al, 0x2d
neg dl
movsx ecx, al
sbb dl, dl
push ecx
mov cl, byte [esi + 0x131]
and dl, 0x45
add dl, 0x2d
movsx eax, dl
neg cl
sbb cl, cl
push eax
mov al, byte [esi + 0x130]
and cl, 0x4b
add cl, 0x2d
neg al
movsx edx, cl
sbb al, al
push edx
mov dl, byte [esi + 0x12f]
and al, 0x4a
add al, 0x2d
movsx ecx, al
neg dl
sbb dl, dl
push ecx
mov cl, byte [esi + 0x12e]
and dl, 0x45
add dl, 0x2d
neg cl
movsx eax, dl
sbb cl, cl
push eax
mov al, byte [esi + 0x12d]
and cl, 0x4b
add cl, 0x2d
movsx edx, cl
neg al
sbb al, al
push edx
mov dl, byte [esi + 0x12c]
and al, 0x4a
add al, 0x2d
neg dl
sbb dl, dl
movsx ecx, al
and dl, 0x45
push ecx
mov cl, byte [esi + 0x135]
add dl, 0x2d
movsx eax, dl
neg cl
push eax
sbb cl, cl
and cl, 0x37
add cl, 0x2d
movsx edx, cl
push edx
push str._c_c_c_c_c_c_c_c_c_c_1_user_group__14I64i__s__2d__s__s_s_r_n
push ebp
call fcn.004750c2
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 0x4c
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
mov eax, dword [esp + 0x20]
push ebp
mov ecx, dword [eax]
push ecx
call ebx
mov ecx, dword [esp + 0x1c]
push esi
call fcn.004219b0
test al, al
jne 0x4211e5
mov ecx, dword [esp + 0x1c]
push esi
call fcn.00421af0
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov esi, str.STAT
pop ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x421444
test cl, cl
je 0x421440
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x421444
add eax, 2
add esi, 2
test cl, cl
jne 0x421420
xor eax, eax
jmp 0x421449
sbb eax, eax
sbb eax, 0xffffffff
xor esi, esi
cmp eax, esi
je 0x421475
mov ecx, dword [esp + 0x10]
push str.226_Transfer_complete._r_n
push ebx
call fcn.00420da0
mov eax, dword [ebx]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebx], 0xffffffff
mov dword [ebx + 0x13c], esi
jmp 0x421484
mov ecx, dword [esp + 0x10]
push str.213_End_of_status_r_n
push ebx
call fcn.00420da0
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x140], esi
cmp eax, esi
je 0x42149b
push eax
call fcn.0048c16d
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x5c
ret 0xc