Function at 0x401c50
Capabilities:
Connect to http server
Create http request
Send file using ftp

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bae70
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x4fc060]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [0x4fc020]
mov edx, dword [eax + 0xc]
mov ecx, 0x4fc020
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
mov edx, dword [0x4fc020]
lea eax, [ebp - 0x24]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x24], eax
mov ecx, str.FtpUpload_:____Make_a_file_path____
mov byte [ebp - 4], 1
test ecx, 0xffff0000
jne 0x401ce2
mov edx, ecx
movzx edi, dx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401cf4
push eax
mov eax, edi
lea edi, [ebp - 0x24]
call fcn.00405650
jmp 0x401cf4
push str.FtpUpload_:____Make_a_file_path____
mov eax, 0x2b
lea ebx, [ebp - 0x24]
call fcn.004054e0
mov byte [ebp - 4], 2
mov edx, dword [0x4fc020]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x40], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, 0x4f70b8
shr eax, 0x10
mov byte [ebp - 4], 3
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x401d49
mov ecx, 0x4f70b8
movzx edi, cx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401d5b
push eax
mov eax, edi
lea edi, [ebp - 0x28]
call fcn.00405650
jmp 0x401d5b
push 0x4f70b8
mov eax, 1
lea ebx, [ebp - 0x28]
call fcn.004054e0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x401d7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401d9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x28], eax
mov ecx, 0x4f7270
mov byte [ebp - 4], 4
test ecx, 0xffff0000
jne 0x401de3
mov edx, ecx
movzx edi, dx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401df5
push eax
mov eax, edi
lea edi, [ebp - 0x28]
call fcn.00405650
jmp 0x401df5
push 0x4f7270
mov eax, 1
lea ebx, [ebp - 0x28]
call fcn.004054e0
mov byte [ebp - 4], 5
mov eax, dword [0x4fc020]
mov edx, dword [eax + 0xc]
mov ecx, 0x4fc020
call edx
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, 0x4f7274
mov byte [ebp - 4], 6
test eax, 0xffff0000
jne 0x401e3d
mov ecx, eax
movzx edi, cx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401e4f
push eax
mov eax, edi
lea edi, [ebp - 0x24]
call fcn.00405650
jmp 0x401e4f
push 0x4f7274
mov eax, 1
lea ebx, [ebp - 0x24]
call fcn.004054e0
mov byte [ebp - 4], 7
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 8
test esi, esi
je 0x401e96
test esi, 0xffff0000
jne 0x401e9a
movzx edi, si
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401eb2
push eax
mov eax, edi
lea edi, [ebp - 0x20]
call fcn.00405650
jmp 0x401eb2
xor eax, eax
jmp 0x401ea9
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401ea0
sub eax, edx
push esi
lea ebx, [ebp - 0x20]
call fcn.004054e0
mov byte [ebp - 4], 9
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x28]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x401efb
test eax, 0xffff0000
jne 0x401eff
movzx edi, ax
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401f17
push eax
mov eax, edi
lea edi, [ebp - 0x1c]
call fcn.00405650
jmp 0x401f17
xor eax, eax
jmp 0x401f0b
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401f02
sub eax, edx
mov ecx, dword [ebp + 0x28]
push ecx
lea ebx, [ebp - 0x1c]
call fcn.004054e0
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xb
call fcn.00404fc0
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x38]
push edx
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.00404fc0
add esp, 0x10
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x401fa9
test eax, 0xffff0000
jne 0x401fad
movzx edi, ax
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x401fc5
push eax
mov eax, edi
lea edi, [ebp - 0x18]
call fcn.00405650
jmp 0x401fc5
xor eax, eax
jmp 0x401fb9
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401fb0
sub eax, edx
mov ecx, dword [ebp + 0xc]
push ecx
lea ebx, [ebp - 0x18]
call fcn.004054e0
mov byte [ebp - 4], 0x10
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 0x11
test eax, eax
je 0x40200e
test eax, 0xffff0000
jne 0x402012
movzx edi, ax
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x40202a
push eax
mov eax, edi
lea edi, [ebp - 0x14]
call fcn.00405650
jmp 0x40202a
xor eax, eax
jmp 0x40201e
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402015
sub eax, edx
mov ecx, dword [ebp + 0x10]
push ecx
lea ebx, [ebp - 0x14]
call fcn.004054e0
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x12
call fcn.00404fc0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x34]
push edx
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.00404fc0
add esp, 0x10
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402077
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x4fc020]
mov eax, dword [edx + 0xc]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x48], ecx
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x30], eax
mov ecx, str.FtpUpload_:____Open_the_internet____
mov byte [ebp - 4], 0x16
test ecx, 0xffff0000
jne 0x4020c3
mov edx, ecx
movzx edi, dx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x4020d5
push eax
mov eax, edi
lea edi, [ebp - 0x30]
call fcn.00405650
jmp 0x4020d5
push str.FtpUpload_:____Open_the_internet____
mov eax, 0x2c
lea ebx, [ebp - 0x30]
call fcn.004054e0
mov byte [ebp - 4], 0x17
mov edx, dword [0x4fc020]
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4fc020
call eax
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x44], 0
jne 0x402121
mov ecx, 0x4f70b8
movzx edi, cx
push edi
call fcn.00401080
add esp, 4
test eax, eax
je 0x402133
push eax
mov eax, edi
lea edi, [ebp - 0x2c]
call fcn.00405650
jmp 0x402133
push 0x4f70b8
mov eax, 1
lea ebx, [ebp - 0x2c]
call fcn.004054e0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402156
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402175
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push 0
push 0
push 1
push str.GA10_FTP_client_upload
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
test ebx, ebx
jne 0x4023c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x2c]
push eax
push str.Windows_LastError_:__d
lea edi, [ebp - 0x10]
mov dword [ecx], eax
call fcn.00405830
add esp, 8
lea edx, [ebp - 0x30]
push edx
mov ecx, str.FtpUpload_:_Failure____Open_the_internet____
call fcn.00404a50
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x4f7310
mov byte [ebp - 4], 0x19
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4021f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402210
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
lea ebx, [ebp - 0x30]
call fcn.004049e0
lea ecx, [ebp - 0x44]
push ecx
mov ecx, 0x4f7310
mov byte [ebp - 4], 0x1a
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402250
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40226f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402292
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4022b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4022d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4022fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40231e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402341
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402364
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402387
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4023ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x30]
push ecx
mov ecx, str.FtpUpload_:____FTP_connection____
call fcn.00404a50
lea edx, [ebp - 0x44]
push edx
mov ecx, 0x4f70b8
mov byte [ebp - 4], 0x1b
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402406
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402424
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
dec eax
neg eax
sbb eax, eax
push 0
and eax, 0xf8000000
add eax, 0x8000000
push eax
mov eax, dword [ebp + 0x14]
push 1
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
push ebx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edi, eax
test edi, edi
jne 0x40265d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp + 0x2c]
push eax
push str.Windows_LastError_:__d
lea edi, [ebp - 0x10]
mov dword [edx], eax
call fcn.00405830
add esp, 8
lea eax, [ebp - 0x30]
push eax
mov ecx, str.FtpUpload_:_Failure____FTP_connection____
call fcn.00404a50
lea ecx, [ebp - 0x44]
push ecx
mov ecx, 0x4f7310
mov byte [ebp - 4], 0x1c
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4024ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4024d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
lea ebx, [ebp - 0x30]
call fcn.004049e0
lea ecx, [ebp - 0x44]
push ecx
mov ecx, 0x4f7310
mov byte [ebp - 4], 0x1d
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402517
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402535
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402557
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402579
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40259b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4025bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4025df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402601
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402623
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402645
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jmp 0x4023a1
lea ecx, [ebp - 0x30]
push ecx
mov ecx, str.FtpUpload_:____FTP_upload____
call fcn.00404a50
lea edx, [ebp - 0x44]
push edx
mov ecx, 0x4f70b8
mov byte [ebp - 4], 0x1e
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40269f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4026bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
push ecx
push 2
push edx
push eax
push edi
call dword [sym.imp.WININET.dll_FtpPutFileA]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, str.___FTP_upload___
mov dword [ebp - 0x2c], eax
call fcn.00404a50
lea edx, [ebp - 0x44]
push edx
mov ecx, str.FtpUpload
mov byte [ebp - 4], 0x1f
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402717
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402735
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x30]
push ecx
mov ecx, str.FtpUpload_:____FTP_disconnection____
call fcn.00404a50
lea edx, [ebp - 0x44]
push edx
mov ecx, 0x4f70b8
mov byte [ebp - 4], 0x20
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402777
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402795
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
lea ecx, [ebp - 0x30]
push ecx
mov ecx, str.FtpUpload_:____Internet_disconnection____
call fcn.00404a50
lea edx, [ebp - 0x44]
push edx
mov ecx, 0x4f70b8
mov byte [ebp - 4], 0x21
call fcn.00404a50
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4027e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4027fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
call edi
mov ecx, dword [ebp + 0x2c]
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40282c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40284e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402870
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402892
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4028b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4028d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4028f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40291a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x402939
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret