Function at 0x40e976
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Delete file
Get file size
Get local ipv4 addresses
Get socket information
Move file
Send data
Send data on socket
Send http request

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0xcc
mov eax, dword [0x42a650]
mov dword [ecx + 0x38], eax
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x74]
push 0x5c
push 0
push eax
call fcn.00428f38
mov edi, dword [ebx + 8]
sub esp, 0xc
lea eax, [edi + 0x4000]
mov dword [ebp - 0xa4], eax
lea eax, [edi + 0x4400]
mov dword [ebx + 0x20], eax
push str.:_NO_CACHE_r_n
push edi
call fcn.004034d9
add esp, 0x20
test eax, eax
mov dword [ebp - 0xa0], eax
jne 0x40e9e8
push ecx
push ecx
push str._nCACHE_CONTROL:
push edi
call fcn.004034d9
add esp, 0x10
mov dword [ebp - 0xa0], eax
push eax
push eax
push str.Authorization
push edi
call fcn.0040e91a
mov dword [ebp - 0xc0], eax
pop eax
pop edx
push str.If_modified_since
push edi
call fcn.0040e91a
add esp, 0x10
test byte [0x46579f], 0x10
mov dword [ebp - 0xc8], eax
je 0x40ea2d
push eax
push eax
push str._nCookie
push edi
call fcn.004034d9
add esp, 0x10
mov dword [ebp - 0x1c], eax
push eax
push eax
push str._nProxy_Authorization:
push edi
call fcn.004034d9
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40eaa4
lea eax, [eax + 0x16]
sub esp, 0xc
mov dword [edi + 0x4400], 0x43aea5
mov ecx, ebx
mov dword [edi + 0x4404], eax
lea eax, [edi + 0x4418]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x94]
push eax
call fcn.0040767c
add esp, 0xc
test eax, eax
mov dword [ebp - 0x34], eax
je 0x40ea92
push ebx
push dword [ebp - 0x94]
push 0x10
push eax
call fcn.0041083c
add esp, 0x10
mov dword [ebp - 0x3c], eax
inc esi
push eax
push dword [ebx + 0x2c]
push edi
push esi
call fcn.00411de7
add esp, 0x10
mov dword [ebx + 0x2c], eax
test byte [0x46579b], 0x40
je 0x40eac8
cmp dword [ebp - 0x3c], 0
jne 0x40eac8
mov dword [ebx + 0x3c], 0
push esi
push esi
push 0x65
push str.HTTP_1.1_407_deny_r_nProxy_Authenticate:_Basic_realm_Proxy__r_nContent_Type:_text_plain_r_n_r_nAccess_denyed
jmp 0x40f8a5
test byte [0x46579e], 0x80
lea eax, [edi + 6]
je 0x40eae9
push ecx
push ecx
push dword [ebp - 0xa4]
push eax
call fcn.0040e45d
add esp, 0x10
mov esi, eax
jmp 0x40eaf8
push edx
push edx
push 0x20
push eax
call fcn.0040ddbc
add esp, 0x10
mov esi, eax
cmp dword [0x465c34], 0
je 0x40eb1b
push eax
push eax
lea eax, [ebx + 0x80]
push eax
push esi
call fcn.0040e7fe
add esp, 0x10
test eax, eax
jne 0x40f895
cmp dword [0x4656a4], 0
je 0x40eb70
mov dword [ebx + 0x28], 0
mov dword [ebp - 0x88], 0
cmp dword [0x4656a4], 0
jg 0x40eb70
push ecx
push dword [ebx]
push 1
push 1
call fcn.0040a5c0
add esp, 0x10
test eax, eax
jne 0x40f8b3
mov eax, dword [ebp - 0x88]
inc eax
cmp eax, dword [0x42a650]
mov dword [ebp - 0x88], eax
jg 0x40f8b3
jmp 0x40eb35
cmp dword [0x42a594], 0
mov dword [ebx + 0x28], esi
je 0x40ebaf
test byte [0x46579e], 0x80
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], eax
jne 0x40ebaf
push edx
push esi
push edi
push eax
call fcn.0040e59a
inc dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
add esp, 0x10
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0xac], eax
add eax, edi
mov dword [ebp - 0x94], eax
push eax
push eax
push str.HOST
push edi
call fcn.0040e91a
add esp, 0x10
test eax, eax
mov dword [ebp - 0xa8], eax
jne 0x40ec0d
push eax
push eax
push str.tp:__
push edi
call fcn.004034b5
pop edx
lea edx, [eax + 5]
test eax, eax
pop ecx
lea ecx, [edi + 8]
push 0x43af54
cmove edx, ecx
push edx
mov dword [ebp - 0xa8], edx
call fcn.0040343e
add esp, 0x10
mov dword [ebp - 0x2c], eax
jmp 0x40ec3e
push eax
push eax
push 0xd
push dword [ebp - 0xa8]
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x30], eax
je 0x40f782
mov edx, eax
sub edx, dword [ebp - 0xa8]
cmp edx, 0x40
ja 0x40f782
mov byte [eax], 0
push eax
push dword [ebp - 0x30]
push dword [0x42a4b4]
push dword [ebp - 0xa8]
call fcn.0040e3fd
add esp, 0x10
test eax, eax
je 0x40ec79
mov dword [ebx + 0x3c], 0
push eax
mov ecx, ebx
push eax
push 0x190
push str.Access_denied
call fcn.0040a69c
jmp 0x40f8ac
mov eax, dword [0x465964]
test eax, eax
je 0x40eca7
cmp byte [eax], 0
je 0x40eca7
push eax
push dword [ebp - 0x30]
push dword [0x42a4b0]
push dword [ebp - 0xa8]
call fcn.0040e3fd
add esp, 0x10
test eax, eax
je 0x40f8ba
cmp dword [ebp - 0x20], 0
jne 0x40ecf0
cmp dword [edi + 4], 0x3a707466
mov dword [ebp - 0xbc], 0x50
jne 0x40ecf0
push eax
push eax
push 0x43af66
push edi
mov dword [ebp - 0x60], 0xffffffff
call fcn.004034b5
add esp, 0x10
test eax, eax
mov dword [ebp - 0xbc], 0x15
jne 0x40ee40
mov dword [ebx + 0x3c], 0
cmp dword [edi], 0x20544547
jne 0x40ed80
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0xa8]
cmp eax, 0xfe
jg 0x40ed80
cmp dword [ebp - 0xc8], 0
jne 0x40ed80
cmp dword [ebp - 0x1c], 0
jne 0x40ed80
cmp dword [0x42a594], 0
je 0x40ed80
cmp dword [ebp - 0xa0], 0
jne 0x40ed80
lea eax, [edi + 0x4200]
mov dword [ebp - 0xa0], eax
push ecx
push ecx
push 0
push dword [ebp - 0xa4]
call fcn.00403579
test eax, eax
mov dword [ebp - 0x70], eax
pop edx
pop ecx
js 0x40f8c2
push ecx
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
pop esi
pop edx
jne 0x40f536
sub esp, 0xc
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x70], 0
add esp, 0xc
cmp dword [ebp - 0x20], 0
je 0x40ee40
mov eax, dword [0x465964]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x42a684]
mov dword [ebp - 0xbc], eax
mov eax, dword [0x465980]
test eax, eax
je 0x40ee40
sub esp, 0xc
lea esi, [edi + 0x4200]
push eax
call fcn.00428f74
add esp, 0xc
push eax
push dword [0x465980]
push esi
call fcn.00410c96
sub eax, esi
mov ecx, edi
add esp, 0x10
add eax, 0x1d
sub ecx, eax
mov eax, edi
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x90], ecx
mov dl, byte [eax]
cmp dl, 0xa
je 0x40ee08
test dl, dl
je 0x40ee08
mov edx, dword [ebp - 0x90]
inc eax
lea ecx, [edx + 1]
mov dword [ebp - 0x90], ecx
mov cl, byte [eax - 1]
mov byte [edx], cl
jmp 0x40ede6
add edi, 0x4000
push ecx
push esi
push str._nProxy_Authorization:_Basic__s_r
push dword [ebp - 0x90]
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [ebp - 0x90]
add dword [ebp - 0xac], eax
add esp, 0x10
mov dword [ebp - 0xa4], edi
mov edi, dword [ebp - 0x9c]
mov byte [edx + eax], 0xa
mov eax, dword [ebp - 0xa8]
cmp byte [eax], 0x5b
jne 0x40ee71
push edx
push edx
push 0x43af89
push eax
call fcn.004034b5
add esp, 0x10
test eax, eax
je 0x40f96b
inc eax
mov dword [ebp - 0x9c], eax
jne 0x40eede
jmp 0x40f96b
push eax
push eax
push 0x3a
push dword [ebp - 0xa8]
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x9c], eax
jne 0x40eede
lea esi, [edi + 0xb]
push eax
push eax
push 0x3a
push esi
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x9c], eax
je 0x40f96b
push eax
push eax
push 0x2f
push esi
call fcn.004033da
add esp, 0x10
cmp dword [ebp - 0x9c], eax
jae 0x40ef15
cmp dword [ebp - 0xbc], 0x15
jne 0x40eede
push eax
push eax
push 0x40
push esi
call fcn.004033da
add esp, 0x10
cmp dword [ebp - 0x9c], eax
jbe 0x40ef15
mov eax, dword [ebp - 0x9c]
sub esp, 0xc
mov byte [eax], 0
inc eax
push eax
call fcn.00410bc8
add esp, 0x10
cmp eax, dword [0x42a68c]
je 0x40f782
test eax, eax
je 0x40ef15
cmp dword [ebp - 0x20], 0
cmovne eax, dword [ebp - 0xbc]
mov dword [ebp - 0xbc], eax
push ecx
push ecx
push 0x20
push dword [ebp - 0xa8]
call fcn.0040ddbc
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x2c]
add esp, 0x10
test eax, eax
je 0x40ef40
movsx ecx, byte [eax]
mov byte [eax], 0
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebx + 0x1c]
test eax, eax
mov dword [ebp - 0x74], eax
jle 0x40ef75
mov ecx, dword [ebp - 0xa0]
cmp ecx, dword [ebx + 0x14]
jne 0x40ef67
push edx
push eax
push 0
push 0
call fcn.0040a5c0
add esp, 0x10
test eax, eax
je 0x40efe4
sub esp, 0xc
push dword [ebp - 0x74]
call fcn.0040aa80
add esp, 0x10
mov ecx, ebx
mov dword [ebx + 0x1c], 0
call fcn.0040a718
push esi
push esi
push dword [ebp - 0xbc]
push dword [ebp - 0xa8]
call fcn.0040deb4
add esp, 0x10
test eax, eax
mov dword [ebp - 0x74], eax
jle 0x40f782
mov dword [ebx + 0x1c], eax
push edx
lea edx, [ebp - 0x88]
inc dword [ebp - 0x28]
mov dword [ebp - 0x88], 0x10
push edx
lea edx, [ebp - 0x84]
push edx
push eax
call dword [sym.imp.WS2_32.dll_getsockname]
mov eax, dword [ebp - 0x80]
mov dword [ebx + 0x24], eax
movzx eax, word [ebp - 0x82]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x14], eax
pop ecx
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x40eff3
mov cl, byte [ebp - 0xb8]
mov byte [eax], cl
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x40effd
mov byte [eax], 0xd
cmp dword [ebp - 0x9c], 0
je 0x40f00f
mov eax, dword [ebp - 0x9c]
mov byte [eax], 0x3a
cmp dword [ebp - 0x20], 0
jne 0x40f42a
cmp dword [ebp - 0x60], 0
je 0x40f3a6
push eax
push eax
push 0x40
push edi
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x8c], eax
lea edx, [edi + 0xa]
je 0x40f084
mov byte [eax], 0
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], edx
lea esi, [eax + 1]
push eax
push eax
push 0x3a
push edx
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0xa0]
je 0x40f078
mov byte [eax], 0
inc eax
mov dword [ebp - 0x90], eax
jmp 0x40f095
mov dword [ebp - 0x90], str.shs_
jmp 0x40f095
mov esi, edx
mov dword [ebp - 0x90], str.shs_
mov edx, str.anonymous
cmp dword [ebp - 0xc0], 0
je 0x40f0db
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xc0]
sub esp, 0xc
mov dword [eax + 0x404], ecx
mov dword [eax + 0x400], 0x43aea5
add eax, 0x418
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x90]
mov ecx, ebx
push eax
call fcn.0040767c
mov edx, eax
add esp, 0xc
push ecx
push ecx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
mov dword [ebp - 0xa0], edx
call fcn.0040e2b0
add esp, 0x10
cmp eax, 0x12b
mov edx, dword [ebp - 0xa0]
ja 0x40fa74
push ecx
push edx
mov edx, dword [sym.imp.USER32.dll_wsprintfA]
push str.USER__s_r_n
push dword [ebp - 0x94]
mov dword [ebp - 0xcc], edx
call edx
push 0
push eax
mov eax, dword [sym.imp.WS2_32.dll_send]
push dword [ebp - 0x94]
push dword [ebp - 0x74]
mov dword [ebp - 0xc4], eax
call eax
add dword [ebp - 0x64], eax
pop eax
pop edx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
add esp, 0x10
cmp eax, 0xe6
mov dword [ebp - 0xa0], eax
je 0x40f1d2
cmp eax, 0x14b
mov edx, dword [ebp - 0xcc]
jne 0x40fa74
push eax
push dword [ebp - 0x90]
push str.PASS__s_r_n
push dword [ebp - 0x94]
call edx
push 0
push eax
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call dword [ebp - 0xc4]
add dword [ebp - 0x64], eax
pop eax
pop edx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
mov ecx, 0x64
cdq
add esp, 0x10
idiv ecx
cmp eax, 2
jbe 0x40f1d2
sub esp, 0xc
push dword [0x42e1e8]
call fcn.00428f74
pop edx
pop ecx
push eax
push dword [0x42e1e8]
jmp 0x40f794
mov eax, dword [ebp - 0x94]
cmp byte [eax + 3], 0x2d
jne 0x40f1ec
sub esp, 0xc
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0xc
push 0
push 8
push str.TYPE_I_r_n
push dword [ebp - 0x74]
call dword [sym.imp.WS2_32.dll_send]
add dword [ebp - 0x64], eax
push eax
push eax
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
mov eax, dword [ebp - 0x8c]
add esp, 0x10
test eax, eax
je 0x40f233
cmp dword [ebp - 0x9c], 0
mov byte [eax], 0x40
je 0x40f233
mov eax, dword [ebp - 0x9c]
mov byte [eax], 0x3a
push eax
push eax
push 0x20
push esi
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x9c], eax
je 0x40fa74
mov byte [eax], 0
push ecx
push ecx
push 0x2f
push esi
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x90], eax
je 0x40fa74
sub esp, 0xc
push eax
call fcn.0040e2e3
mov eax, dword [ebp - 0x9c]
add esp, 0x10
cmp byte [eax - 1], 0x2f
je 0x40f2f7
push esi
push dword [ebp - 0x90]
push str.SIZE__s_r_n
push dword [ebp - 0x94]
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
push eax
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call dword [sym.imp.WS2_32.dll_send]
add dword [ebp - 0x64], eax
pop eax
pop edx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
add esp, 0x10
cmp eax, 0xd5
jne 0x40f2f7
mov eax, dword [ebp - 0x94]
add eax, 3
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x20
jne 0x40f2e8
inc eax
jmp 0x40f2d4
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x24], 0
jne 0x40f334
push 0
mov esi, dword [sym.imp.WS2_32.dll_send]
push 6
push 0x43afb3
push dword [ebp - 0x74]
call esi
push ecx
push ecx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
add dword [ebp - 0x64], eax
call fcn.0040e2b0
add esp, 0x10
cmp eax, 0xe3
jne 0x40fa74
jmp 0x40f37d
push eax
push dword [ebp - 0x68]
push str.REST__u_r_n
push dword [ebp - 0x94]
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
push eax
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call dword [sym.imp.WS2_32.dll_send]
add dword [ebp - 0x64], eax
pop eax
pop edx
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
add esp, 0x10
cmp eax, 0x190
jbe 0x40f2fd
jmp 0x40fa74
push eax
push eax
push 0x28
push dword [ebp - 0x94]
call fcn.004033da
add esp, 0x10
test eax, eax
jne 0x40f97a
mov dword [ebp - 0x8c], 0
jmp 0x40fa74
lea eax, [edi + 0xc]
push esi
push esi
push 0x2f
mov esi, edi
push eax
call fcn.004033da
add esp, 0x10
test eax, eax
je 0x40f3eb
cmp byte [eax + 4], 0xd
je 0x40f3eb
cmp byte [edi + 8], 0x3a
je 0x40f3ce
cmp byte [edi + 9], 0x3a
jne 0x40f3eb
cmp byte [edi + 9], 0x3a
jne 0x40f3d9
mov byte [eax - 1], 0x20
dec eax
mov edx, dword [edi]
lea esi, [eax - 4]
mov dword [eax - 4], edx
mov eax, esi
sub eax, edi
sub dword [ebp - 0xac], eax
push ecx
push ecx
push str._nProxy_Connection:
push esi
call fcn.004034d9
add esp, 0x10
test eax, eax
mov dword [ebp - 0x90], eax
je 0x40f42c
sub dword [ebp - 0xac], 6
push edx
mov edx, eax
mov ecx, dword [ebp - 0xac]
sub edx, esi
sub ecx, edx
lea edx, [eax + 7]
inc eax
push ecx
push edx
push eax
call fcn.00428f18
add esp, 0x10
jmp 0x40f42c
mov esi, edi
cmp dword [esi], 0x4e4e4f43
jne 0x40f47a
cmp dword [ebp - 0x20], 0
jne 0x40f44d
push esi
push 0x10
push str.HTTP_1.1_200_r_n_r_n
push ebx
call fcn.0040a8dd
add esp, 0x10
jmp 0x40f45c
push 0
push dword [ebx + 0x2c]
push edi
push dword [ebp - 0x74]
call dword [sym.imp.WS2_32.dll_send]
push ecx
push ecx
mov ecx, ebx
push edi
push dword [ebp - 0x74]
call fcn.0040e32a
mov eax, dword [ebx + 0x40]
add dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x44]
add dword [ebp - 0x64], eax
jmp 0x40f7b0
push edx
push edx
push str.Content_Length
push esi
call fcn.0040e91a
add esp, 0x10
test eax, eax
mov dword [ebp - 0x90], eax
je 0x40f4a8
sub esp, 0xc
push eax
call fcn.00410bc8
sub eax, dword [ebx + 0x34]
mov dword [ebp - 0x54], eax
jmp 0x40ff41
test byte [ebx + 0xc], 8
jne 0x40f4de
test byte [0x46579e], 2
je 0x40f4de
cmp dword [0x472c48], 0
jle 0x40f4de
push eax
push eax
push 0x43aff7
push esi
call fcn.004034b5
add esp, 0x10
test eax, eax
mov dword [ebp - 0x8c], eax
jne 0x40ff1e
mov ecx, dword [sym.imp.WS2_32.dll_send]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xa0], ecx
push 0
push eax
push esi
push dword [ebp - 0x74]
call dword [ebp - 0xa0]
test eax, eax
js 0x40fa74
add dword [ebp - 0x64], eax
cmp dword [ebp - 0x54], 0
jle 0x40f530
sub esp, 0xc
push dword [0x42a650]
push 0
push 0xfa0
push esi
push dword [ebx]
call fcn.0040e22e
add esp, 0x20
sub dword [ebp - 0x54], eax
test eax, eax
jg 0x40f4f0
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x88]
mov edx, 0x1388
sub esp, 0xc
push dword [0x42a650]
push dword [ebp - 0x70]
sub edx, eax
add eax, dword [ebp - 0x94]
push edx
push eax
push dword [ebp - 0x74]
call fcn.0040e22e
add esp, 0x20
test eax, eax
mov dword [ebp - 0xa0], eax
mov esi, dword [ebp - 0x88]
jg 0x40f5b7
test esi, esi
jne 0x40f636
cmp dword [ebp - 0x28], 0
jne 0x40f5a6
cmp dword [ebp - 0x90], 0
jne 0x40f5a6
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x40ef67
mov byte [eax], 0
jmp 0x40ef67
push eax
push eax
push 0x190
push str.Error._Cant_receive_header...
jmp 0x40f7a9
mov eax, dword [ebp - 0xa0]
add dword [ebp - 0x68], eax
add esi, eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x88], esi
mov byte [eax + esi], 0
push eax
push eax
push 0x43b038
push dword [ebp - 0x94]
call fcn.004034b5
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40f600
cmp byte [eax - 1], 0xd
je 0x40f646
xor eax, eax
cmp byte [esi + 3], 0xd
sete al
add esi, eax
jmp 0x40f646
push eax
push eax
push 0x43b03c
push dword [ebp - 0x94]
call fcn.004034b5
add esp, 0x10
test eax, eax
mov dword [ebp - 0x9c], eax
je 0x40f624
mov esi, eax
dec esi
jmp 0x40f646
mov esi, dword [ebp - 0x88]
cmp esi, 0x1387
jle 0x40f540
cmp dword [ebp - 0x24], 0
jne 0x40f7b2
add esi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x94]
sub esp, 0xc
add eax, 9
push eax
call fcn.00410bc8
add esp, 0x10
mov dword [ebp - 0xb8], eax
mov al, byte [esi + 1]
mov byte [esi + 1], 0
cmp dword [ebx + 0x3c], 0
mov byte [ebp - 0x9c], al
je 0x40f68c
push eax
push eax
push str.Connection:_Keep_Alive
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
mov dword [ebx + 0x3c], eax
push 0x4394e0
push dword [ebp - 0x74]
push dword [ebp - 0x94]
push dword [0x45c284]
call fcn.00403e78
mov al, byte [ebp - 0x9c]
add esp, 0x10
mov byte [esi + 1], al
test byte [ebx + 0xc], 8
jne 0x40f749
cmp dword [0x472c48], 0
jle 0x40f749
push ecx
push ecx
push str.Content_Encoding
push dword [ebp - 0x94]
call fcn.0040e91a
add esp, 0x10
test eax, eax
mov dword [ebp - 0x8c], eax
je 0x40f749
push edx
push edx
push str.gzip
push eax
call fcn.00403490
add esp, 0x10
test eax, eax
jne 0x40f714
push ecx
push ecx
push 0x43b06c
push dword [ebp - 0x8c]
call fcn.00403490
add esp, 0x10
test eax, eax
je 0x40f749
mov ecx, ebx
call fcn.00422c44
test eax, eax
je 0x40f749
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x40f742
push edx
push dword [ebp - 0x88]
push dword [ebp - 0x94]
push eax
call fcn.00411de7
add esp, 0x10
mov dword [ebp - 0x88], eax
mov dword [ebx + 0x3c], 0
cmp dword [ebp - 0xb8], 0xce
je 0x40fc23
cmp dword [ebp - 0x24], 0
je 0x40fc23
push eax
push eax
push str._nContent_Range:
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x40fc23
jmp 0x40f7b2
cmp dword [ebp - 0xc8], 0
je 0x40f79d
push eax
push eax
push 0x10
push str.HTTP_1.0_304_r_n_r_n
mov ecx, ebx
call fcn.00429114
jmp 0x40f7b0
push eax
push eax
push 0x190
push str.Error._Cant_connect...
mov ecx, ebx
call fcn.0040a69c
pop ecx
pop esi
mov dword [ebx + 0x3c], 0
mov eax, dword [ebp - 0x60]
test eax, eax
jle 0x40f7cc
sub esp, 0xc
push eax
call fcn.0040aa80
add esp, 0x10
mov ecx, ebx
call fcn.0042320e
mov eax, dword [ebp - 0x70]
test eax, eax
jle 0x40f7e7
sub esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0xc
mov eax, dword [ebp - 0x6c]
test eax, eax
jle 0x40f81b
sub esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x465774]
add esp, 0xc
test eax, eax
je 0x40f81b
cmp eax, dword [ebp - 0x68]
jae 0x40f81b
sub esp, 0xc
push dword [ebp - 0xb4]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 0xc
mov eax, dword [ebp - 0x44]
test eax, eax
jle 0x40f834
push edx
push edx
lea edx, [ebx + 0x80]
push edx
push eax
call fcn.0040e6dd
add esp, 0x10
mov edx, dword [ebp - 0x3c]
lea eax, [edx + 5]
test edx, edx
mov edx, 0x43ac23
cmove eax, edx
sub esp, 0xc
push eax
push dword [ebp - 0x64]
push dword [ebx + 0x44]
push 0x43b1c5
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
push str.___.256s_r_n
push dword [ebx]
push edi
push dword [0x45c284]
call fcn.00403e78
mov eax, dword [ebp - 0x74]
add esp, 0x10
test eax, eax
jle 0x40f8b3
cmp dword [ebx + 0x3c], 0
jne 0x40f8b3
sub esp, 0xc
push eax
call fcn.0040aa80
mov dword [ebx + 0x1c], 0
add esp, 0x10
jmp 0x40f8b3
mov dword [ebx + 0x3c], 0
push edi
push edi
push 0x4d
push str.HTTP_1.1_400_deny_r_n_r_nContent_Type:_text_html_r_n_r_n_h1_Virus._Access_denyed__h1_
mov ecx, ebx
call fcn.00429114
pop ebx
pop esi
jmp 0x410281
xor eax, eax
jmp 0x410281
inc dword [ebp - 0x20]
jmp 0x40eca7
test byte [0x46579e], 0x80
jne 0x40f8d9
test byte [0x46579d], 4
jne 0x40f91f
jmp 0x40ed80
cmp dword [ebp - 0x4c], 0
jne 0x40f8cb
push ecx
push esi
push edi
push dword [ebp - 0xa0]
call fcn.0040e59a
mov dword [ebp - 0x50], eax
inc dword [ebp - 0x4c]
pop eax
push dword [ebp - 0xa4]
call fcn.0040e5ff
pop eax
pop edx
push dword [ebp - 0xa4]
push dword [ebp - 0xa0]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
pop ecx
pop edx
jne 0x40ed39
jmp 0x40f8cb
cmp dword [ebp - 0x50], 0
je 0x40ed80
push esi
push dword [0x42a594]
push str._s_8.8X.asi
push dword [ebp - 0xa0]
call dword [sym.imp.USER32.dll_wsprintfA]
pop eax
pop edx
mov dword [ebp - 0x50], 0
push dword [ebp - 0xa4]
push dword [ebp - 0xa0]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
pop ecx
pop edx
jne 0x40ed39
jmp 0x40ed80
mov dword [ebp - 0x9c], 0
jmp 0x40ef15
lea edx, [ebp - 0x8c]
sub esp, 0xc
inc eax
mov dword [ebp - 0x8c], eax
push edx
mov dword [ebp - 0xc4], edx
call fcn.00410d76
mov edx, dword [ebp - 0xc4]
inc dword [ebp - 0x8c]
mov dword [ebp - 0x80], eax
mov dword [esp], edx
call fcn.00410c53
mov word [ebp - 0x82], ax
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [esp], eax
mov dword [ebp - 0x8c], eax
call fcn.00410bc8
shl eax, 8
or word [ebp - 0x82], ax
mov eax, dword [ebp - 0x9c]
add esp, 0xc
mov edx, str.LIST__s_r_n
cmp byte [eax - 1], 0x2f
mov eax, str.RETR__s_r_n
push dword [ebp - 0x90]
cmove eax, edx
push eax
push dword [ebp - 0x94]
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
push eax
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call esi
add esp, 0xc
add dword [ebp - 0x64], eax
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
test eax, eax
mov dword [ebp - 0x60], eax
pop ecx
jle 0x40fa74
sub esp, 0xc
mov word [ebp - 0x84], 2
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
push eax
push eax
lea eax, [ebp - 0x84]
push 0x10
push eax
push dword [ebp - 0x60]
call dword [sym.imp.WS2_32.dll_connect]
add esp, 0x14
test eax, eax
js 0x40fa8f
push esi
push esi
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e2b0
sub eax, 0x64
add esp, 0x10
cmp eax, 0x63
ja 0x40fa8f
jmp 0x40fab3
cmp dword [ebp - 0x24], 0
jne 0x40f7b2
push eax
push eax
push 0x190
push str.Error._Cant_send_request...
jmp 0x40f7a9
sub esp, 0xc
push dword [ebp - 0x90]
call fcn.0040e3a1
add esp, 0x10
test eax, eax
je 0x40fa74
sub esp, 0xc
push dword [ebx]
call fcn.0040aa80
jmp 0x40f275
mov eax, dword [ebp - 0x9c]
cmp byte [eax - 1], 0x2f
jne 0x40fb3e
mov ecx, ebx
xor esi, esi
call fcn.0040b61c
lea eax, [edi + esi]
sub esp, 0xc
push dword [0x42a650]
push dword [ebp - 0x70]
push 0x8000
push eax
push dword [ebp - 0x60]
call fcn.0040e22e
add esi, eax
add esp, 0x20
test esi, esi
jle 0x40fb2b
lea eax, [edi + esi + 0x14]
add dword [ebp - 0x68], esi
mov byte [edi + esi], 0
push ecx
push ecx
mov ecx, ebx
push eax
push edi
call fcn.0040b5a8
mov edx, eax
mov dword [ebp - 0x90], eax
sub edx, edi
sub esi, edx
test esi, esi
pop edx
pop ecx
jle 0x40fb24
push edx
push esi
push eax
push edi
call fcn.00428f18
add esp, 0x10
jmp 0x40fb26
xor esi, esi
sub dword [ebp - 0x68], esi
jmp 0x40fac8
sub esp, 0xc
mov ecx, ebx
push edi
call fcn.0040b636
add esp, 0xc
jmp 0x40f7b2
cmp dword [0x42a594], 0
je 0x40fba8
cmp dword [ebp - 0xc0], 0
jne 0x40fba8
cmp dword [ebp - 0x70], 0
jg 0x40fba8
cmp dword [ebp - 0x6c], 0
jg 0x40fba8
mov eax, dword [0x465774]
test eax, eax
je 0x40fb6a
cmp eax, dword [ebp - 0x58]
jbe 0x40fba8
cmp dword [ebp - 0x24], 0
je 0x40fb94
push esi
push esi
push 1
push dword [ebp - 0xb4]
call fcn.00403579
sub esp, 0xc
mov dword [ebp - 0x6c], eax
push 2
push 0
push eax
call fcn.0040364b
add esp, 0x14
jmp 0x40fba8
sub esp, 0xc
push dword [ebp - 0xb4]
call fcn.0040e63e
add esp, 0x10
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x24], 0
jne 0x40fbea
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x6c]
mov ecx, str.HTTP_1.0_200_r_nContent_Length:__u_r_nContent_type:_application_octet_stream_r_n_r_n
mov eax, str.HTTP_1.0_200_r_nContent_type:_application_octet_stream_r_n_r_n
test edx, edx
cmovne eax, ecx
push ecx
push edx
push eax
push dword [ebp - 0x94]
call dword [sym.imp.USER32.dll_wsprintfA]
push esi
push eax
push dword [ebp - 0x94]
push ebx
call fcn.0040e27f
mov dword [ebp - 0x68], 0
add esp, 0x20
lea eax, [ebp - 0x74]
lea edx, [ebp - 0x60]
mov ecx, dword [eax]
xchg dword [edx], ecx
mov dword [eax], ecx
mov eax, dword [0x465c34]
test eax, eax
je 0x40fd66
push edx
push edx
push dword [0x42b988]
push eax
mov dword [ebp - 0x48], 1
call fcn.0040e66e
add esp, 0x10
mov dword [ebp - 0x44], eax
jmp 0x40fd66
push ecx
push ecx
push str.Content_Length
push dword [ebp - 0x94]
call fcn.0040e91a
add esp, 0x10
test eax, eax
mov dword [ebp - 0x34], eax
je 0x40fc58
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
mov edx, 0xffffffff
test eax, eax
cmove eax, edx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
jle 0x40ff49
cmp dword [0x465c34], 0
jne 0x40ffc5
cmp dword [ebp - 0xb8], 0x12b
jg 0x4100ac
test byte [0x46579b], 4
je 0x41002a
cmp dword [0x42a594], 0
je 0x40fca2
cmp dword [ebp - 0xc0], 0
je 0x410131
movsx eax, byte [ebp - 0x9c]
mov dword [ebp - 0xa0], eax
push eax
push eax
push str._nContent_type:
push dword [ebp - 0x94]
call fcn.004034d9
pop edx
pop ecx
push 0x43b0f5
push dword [ebp - 0x94]
mov dword [ebp - 0x34], eax
call fcn.004034d9
add esp, 0x10
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xc4], eax
je 0x4100d3
lea eax, [esi + 3]
mov dword [ebp - 0xcc], eax
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0xc4]
sub eax, edx
lea edx, [esi + 3]
test eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x94], edx
jg 0x4100b8
mov eax, dword [ebp - 0x88]
test eax, eax
jg 0x4100fa
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x94], eax
jne 0x41011e
cmp dword [ebp - 0x58], 0
je 0x41011e
sub esi, eax
add esi, 3
sub dword [ebp - 0x68], esi
lea esi, [ebx + 0x80]
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x40fd7c
cmp eax, dword [ebp - 0x68]
jle 0x40fe46
cmp dword [ebp - 0xb8], 0x12b
jle 0x40fd9e
test eax, eax
jne 0x40fd9e
cmp dword [ebp - 0x34], 0
mov eax, 3
cmovne eax, dword [ebp - 0xb0]
jmp 0x40fda4
mov eax, dword [ebp - 0xb0]
sub esp, 0xc
push eax
push dword [ebp - 0x70]
push 0x2000
push dword [ebp - 0x94]
push dword [ebp - 0x74]
call fcn.0040e22e
add esp, 0x20
test eax, eax
mov dword [ebp - 0xa0], eax
jle 0x40fe46
mov eax, dword [ebp - 0xa0]
add dword [ebp - 0x68], eax
mov eax, 0xc
cmp dword [ebp - 0x9c], 0
cmove eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x44]
test eax, eax
jle 0x410242
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0x94]
push eax
call fcn.0040e6a0
mov eax, dword [ebp - 0x58]
add esp, 0x10
test eax, eax
je 0x410242
cmp eax, dword [ebp - 0x68]
jg 0x410242
push eax
push eax
push esi
push dword [ebp - 0x44]
call fcn.0040e6dd
add esp, 0x10
test eax, eax
mov dword [ebp - 0x44], 0
jle 0x410242
mov dword [ebx + 0x3c], 0
mov eax, dword [ebp - 0x58]
test eax, eax
jle 0x40f7b9
cmp eax, dword [ebp - 0x68]
jle 0x40f7b9
mov eax, dword [0x42a680]
cmp dword [ebp - 0x24], eax
jge 0x40f7b9
mov eax, dword [ebp - 0x94]
mov byte [eax], 0
mov eax, dword [ebp - 0x60]
test eax, eax
jle 0x40fe8a
sub esp, 0xc
push eax
call fcn.0040aa80
mov dword [ebp - 0x60], 0
jmp 0x40feb1
push eax
push dword [ebp - 0x68]
mov eax, dword [ebx + 0x2c]
push str.Range:_bytes_u__r_n_r_n
lea eax, [edi + eax - 2]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [ebx + 0x2c]
lea eax, [eax + edx - 2]
mov dword [ebp - 0xac], eax
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x30]
add esp, 0x10
inc dword [ebp - 0x24]
test eax, eax
je 0x40fec1
mov byte [eax], 0
mov eax, dword [ebp - 0x70]
test eax, eax
jle 0x40fedc
sub esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x70], 0
add esp, 0xc
mov eax, dword [ebp - 0x74]
test eax, eax
jle 0x40fef6
sub esp, 0xc
push eax
call fcn.0040aa80
mov dword [ebp - 0x74], 0
add esp, 0x10
push dword [ebp - 0x58]
push dword [ebp - 0x68]
push str.Broken.__u_of__u_loaded._Try_continue...
push dword [0x45c284]
call fcn.0040418c
add esp, 0x10
mov dword [ebp - 0x9c], 0
jmp 0x40ef75
add eax, 2
push edx
push edx
push str.Accept_Encoding:_gzip_r_n_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [ebp - 0x8c]
sub edx, esi
lea eax, [eax + edx + 2]
mov dword [ebp - 0xac], eax
add esp, 0x10
jmp 0x40f4de
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0xb0], 5
test eax, eax
je 0x40fc62
push edx
push dword [ebp - 0x88]
push dword [ebp - 0x94]
push eax
call fcn.00411de7
pop ecx
mov dword [ebp - 0x88], eax
pop eax
push str.Keep_Alive:
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
mov dword [ebp - 0x34], eax
je 0x40ffaf
push ecx
push dword [ebp - 0x88]
push dword [ebp - 0x94]
push eax
call fcn.00411de7
add esp, 0x10
mov dword [ebp - 0x88], eax
mov dword [ebx + 0x3c], 0
mov dword [ebp - 0xb0], 5
jmp 0x40fc62
test byte [0x4657a2], 2
jne 0x410087
push edx
push edx
push str._nContent_type:_application
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x410087
cmp byte [esi + 3], 0x4d
jne 0x40ffff
cmp byte [esi + 4], 0x5a
je 0x410087
test byte [0x4657a2], 1
je 0x40fc6f
push eax
push eax
push str._nContent_type:_text_html
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x410087
jmp 0x40fc6f
push eax
push eax
push str.:_NO_CACHE_r_n
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x4100ac
push eax
push eax
push str._nCACHE_CONTROL:_Private
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x4100ac
test byte [0x46579f], 0x10
je 0x40fc8c
push eax
push eax
push str._nCACHE_CONTROL:
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
jne 0x4100ac
jmp 0x40fc8c
push edx
push edx
push dword [0x42b988]
push dword [0x465c34]
mov dword [ebp - 0x48], 1
call fcn.0040e66e
add esp, 0x10
mov dword [ebp - 0x44], eax
jmp 0x40fc6f
mov dword [ebp - 0x5c], 0
jmp 0x40fca2
test ecx, ecx
jle 0x40fd30
sub esp, 4
push eax
push edx
push ecx
call fcn.0040e6a0
add esp, 0x10
jmp 0x40fd30
test ecx, ecx
jle 0x40fd30
mov eax, dword [ebp - 0xc4]
sub edx, esi
lea eax, [edx + eax - 3]
test eax, eax
mov dword [ebp - 0xa0], eax
jg 0x4101d2
jmp 0x40fd30
push dword [ebp - 0x6c]
push eax
push dword [ebp - 0x94]
push ebx
call fcn.0040e27f
add esp, 0x10
test eax, eax
jns 0x40fd3e
mov byte [esi + 4], 0
jmp 0x40f7b9
mov dword [ebp - 0x58], 0
mov dword [ebx + 0x3c], 0
jmp 0x40fd5e
cmp dword [ebp - 0x70], 0
jg 0x40fca2
mov eax, dword [0x465774]
test eax, eax
je 0x410149
cmp eax, dword [ebp - 0x58]
jbe 0x41019f
cmp dword [ebp - 0x24], 0
je 0x410179
cmp dword [ebp - 0x6c], 0
jne 0x410179
push eax
push eax
push 1
push dword [ebp - 0xb4]
call fcn.00403579
sub esp, 0xc
mov dword [ebp - 0x6c], eax
push 2
push 0
push eax
call fcn.0040364b
add esp, 0x14
jmp 0x41019f
cmp dword [ebp - 0x6c], 0
jne 0x41019f
cmp dword [ebp - 0xb8], 0xce
je 0x41019f
sub esp, 0xc
push dword [ebp - 0xb4]
call fcn.0040e63e
add esp, 0x10
mov dword [ebp - 0x6c], eax
test byte [0x46579b], 4
je 0x40fca2
push eax
push eax
push str._nEXPIRES:
push dword [ebp - 0x94]
call fcn.004034d9
add esp, 0x10
test eax, eax
je 0x40fca2
mov byte [eax + 1], 0x4e
jmp 0x40fca2
push eax
lea eax, [esi + 3]
push dword [ebp - 0xc4]
push eax
push ecx
call fcn.0040e6a0
mov eax, dword [ebp - 0x58]
add esp, 0x10
test eax, eax
je 0x40fd30
cmp eax, dword [ebp - 0x88]
jg 0x40fd30
push eax
push eax
lea eax, [ebx + 0x80]
push eax
push dword [ebp - 0x44]
call fcn.0040e6dd
add esp, 0x10
test eax, eax
mov dword [ebp - 0x44], 0
jle 0x40fd30
push ecx
push ecx
mov ecx, ebx
push 0x4d
push str.HTTP_1.1_400_deny_r_n_r_nContent_Type:_text_html_r_n_r_n_h1_Virus._Access_denyed__h1_
call fcn.00429114
mov byte [esi + 4], 0
mov dword [ebx + 0x3c], 0
pop esi
pop eax
jmp 0x40f7b9
push dword [ebp - 0x6c]
push dword [ebp - 0xa0]
push dword [ebp - 0x94]
push ebx
call fcn.0040e27f
add esp, 0x10
test eax, eax
jns 0x41026b
mov eax, dword [0x42a680]
mov dword [ebp - 0x24], eax
jmp 0x40fe3f
cmp dword [ebp - 0x74], 0
je 0x40fd6c
mov ecx, ebx
call fcn.0040a718
jmp 0x40fd6c
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret