Function at 0x40a703
Capabilities:
Connect to http server
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Resolve function by parsing pe exports
Send data
Send http request
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x44ed92
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x108c
call fcn.00442eb0
mov eax, dword [0x46a2c8]
xor eax, esp
mov dword [esp + 0x1088], eax
push ebx
push esi
push edi
mov eax, dword [0x46a2c8]
xor eax, esp
push eax
lea eax, [esp + 0x10a0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10]
mov ebx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], ebx
cmp dword [eax], esi
je 0x40a770
xor eax, eax
jmp 0x40ae59
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push str.dW5rbm93bg
push eax
call fcn.0040890f
lea eax, [esp + 0x18]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
lea edi, [ebx + 8]
mov dword [esp + 0x10a8], esi
mov dword [esp + 0x34], edi
call fcn.0040c54a
or dword [esp + 0x10a8], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.0040117e
call fcn.0040b629
test eax, eax
jne 0x40a7c5
push 4
jmp 0x40ae58
call fcn.0040b656
test eax, eax
jne 0x40a7d5
push 5
jmp 0x40ae58
mov eax, dword [ebp + 0x10]
cmp dword [eax], esi
jne 0x40a769
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push str.R0VU
push eax
call fcn.0040890f
lea eax, [esp + 0x34]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
lea eax, [ebx + 4]
mov dword [esp + 0x10a8], 1
push eax
mov ecx, 0x454ad8
mov dword [esp + 0x24], eax
call fcn.0040cbad
test eax, eax
jne 0x40a820
cmp dword [ebx + 0x78], esi
je 0x40a863
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push str.UE9TVA
push eax
call fcn.0040890f
lea eax, [esp + 0x18]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
lea edi, [esp + 0x30]
mov byte [esp + 0x10a8], 2
call fcn.0040c54a
mov byte [esp + 0x10a8], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.0040117e
mov eax, dword [ebx + 0x68]
push esi
push esi
push esi
push esi
lea edi, [ebx + 0xc]
push eax
mov dword [esp + 0x3c], edi
call dword [sym.imp.WININET.dll_InternetOpenW]
push eax
mov esi, edi
call fcn.0040c47b
mov edi, dword [edi]
test edi, edi
jne 0x40a89c
push 6
pop esi
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.0040117e
mov eax, esi
jmp 0x40ae59
mov esi, dword [ebp + 0x10]
cmp dword [esi], 0
je 0x40a8a8
xor esi, esi
jmp 0x40a889
push 4
lea eax, [esp + 0x50]
push eax
push 0x41
push edi
mov dword [esp + 0x5c], 1
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
je 0x40a938
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push str.Z3ppcCxkZWZsYXRl
push eax
call fcn.0040890f
lea eax, [esp + 0x20]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
push eax
push ecx
mov eax, esp
mov dword [esp + 0x50], esp
push str.QWNjZXB0LUVuY29kaW5n
push eax
mov byte [esp + 0x10b8], 3
call fcn.0040890f
lea eax, [esp + 0x1c]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
push eax
push ebx
mov byte [esp + 0x10b4], 4
call fcn.0040b4f5
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.0040117e
mov byte [esp + 0x10a8], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.0040117e
cmp dword [esi], 0
jne 0x40a8a4
lea eax, [esp + 0x18]
add ebx, 0x30
push eax
call fcn.0040b2d5
mov byte [esp + 0x10a8], 5
mov edi, dword [esp + 0x44]
lea esi, [esp + 0x50]
call fcn.0040f8eb
test eax, eax
jne 0x40a97a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 8
jmp 0x40a888
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
xor edi, edi
push edi
push edi
push 3
mov eax, 0x454ad8
push eax
push eax
push dword [esp + 0x7c]
push dword [esp + 0x78]
push ecx
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [esp + 0x1c], eax
mov byte [esp + 0x10a8], 6
cmp eax, edi
jne 0x40a9c8
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 7
jmp 0x40a888
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x40a9e9
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
jmp 0x40a8a4
xor ebx, ebx
mov eax, 0x1bb
cmp word [esp + 0x68], ax
mov eax, dword [esp + 0x3c]
setne bl
dec ebx
and ebx, 0x800000
or ebx, 0x84403300
cmp dword [eax + 0x70], edi
je 0x40aa45
push ecx
mov eax, esp
mov dword [esp + 0x4c], esp
push str.SFRUUC8xLjE
push eax
call fcn.0040890f
lea eax, [esp + 0x2c]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
mov byte [esp + 0x10a8], 7
mov esi, eax
mov dword [esp + 0x10], 1
call fcn.00408a26
jmp 0x40aa47
xor eax, eax
push edi
push ebx
push edi
push edi
push eax
push dword [esp + 0x90]
push dword [esp + 0x48]
push dword [esp + 0x38]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
mov dword [esp + 0x14], esi
push 9
pop ebx
mov dword [esp + 0x10a8], ebx
test byte [esp + 0x10], 1
je 0x40aa84
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.0040117e
cmp esi, edi
jne 0x40aaad
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
mov esi, ebx
jmp 0x40a889
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x40aac2
lea esi, [esp + 0x14]
call fcn.0040c46a
jmp 0x40a9cf
push ecx
mov eax, esp
mov dword [esp + 0x4c], esp
push str.R0VU
push eax
call fcn.0040890f
lea eax, [esp + 0x48]
push eax
call fcn.0040f5fc
pop ecx
pop ecx
mov byte [esp + 0x10a8], 0xa
mov eax, dword [eax]
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.0040cbad
mov ebx, eax
neg ebx
mov byte [esp + 0x10a8], 9
mov eax, dword [esp + 0x44]
sbb bl, bl
add eax, 0xfffffff0
inc bl
call fcn.0040117e
test bl, bl
je 0x40ab23
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 0xc]
push edi
push edi
push ecx
push eax
jmp 0x40ab3c
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x78]
cmp ebx, edi
je 0x40ab47
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x74]
mov edx, dword [ecx - 0xc]
push ebx
push eax
push edx
push ecx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov ebx, eax
jmp 0x40aba3
push dword [esp + 0x20]
lea eax, [esp + 0x14]
push eax
call fcn.0040f954
pop ecx
pop ecx
mov byte [esp + 0x10a8], 0xb
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], 1
mov ebx, dword [eax - 0xc]
jle 0x40ab7b
push ebx
lea eax, [esp + 0x14]
push eax
call fcn.0040cace
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx - 0xc]
push ebx
push eax
push edx
push ecx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov ebx, eax
mov byte [esp + 0x10a8], 9
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.0040117e
cmp ebx, edi
jne 0x40abcc
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 0xa
jmp 0x40a888
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
jne 0x40aab4
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x28], esi
call fcn.0040b06e
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
mov byte [esp + 0x10ac], 0xc
push eax
mov dword [esp + 0x28], esi
call fcn.0040af75
mov edi, dword [esp + 0x34]
mov byte [esp + 0x10a8], 0xd
call fcn.0040c54a
mov byte [esp + 0x10a8], 0xc
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.0040117e
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x20]
push eax
push edi
mov dword [esp + 0x28], esi
call fcn.0040afd5
test eax, eax
jne 0x40ac72
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 0xb
jmp 0x40a888
add edi, 0x10
push edi
lea eax, [esp + 0x28]
push eax
call fcn.0040b0db
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp dword [eax], ebx
je 0x40ac9a
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
jmp 0x40aab4
mov dword [esp + 0x10], ebx
mov byte [esp + 0x10a8], 0xe
cmp dword [ebp + 0x14], ebx
je 0x40ad18
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
push ebx
push 0x80
push 2
push ebx
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x40ad18
push 0x455024
push dword [esp + 0x38]
call fcn.00408956
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 0xd
jmp 0x40a888
mov edi, 0x1000
push edi
lea eax, [esp + 0x91]
push ebx
push eax
mov dword [esp + 0x44], ebx
mov byte [esp + 0x98], 0
call fcn.004345b0
add esp, 0xc
lea eax, [esp + 0x2c]
push eax
mov ecx, 0x459bfa
call fcn.0040c496
push 0x454ad8
push dword [esp + 0x44]
mov byte [esp + 0x10b0], 0xf
mov dword [esp + 0x3c], ebx
call fcn.00408956
cmp dword [esp + 0x38], ebx
jne 0x40ad75
cmp dword [esp + 0x34], 1
je 0x40ae7f
mov eax, dword [ebp + 0x10]
cmp dword [eax], ebx
jne 0x40af03
lea eax, [esp + 0x38]
push eax
push edi
lea eax, [esp + 0x94]
push eax
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [esp + 0x34], eax
cmp eax, ebx
je 0x40af28
mov eax, dword [esp + 0x38]
cmp eax, ebx
jbe 0x40ad64
cmp eax, edi
jbe 0x40adb3
xor eax, eax
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x10]
mov byte [esp + eax + 0x8c], 0
cmp dword [ecx], ebx
jne 0x40af03
cmp dword [ebp + 0x14], ebx
jne 0x40addf
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040c507
jmp 0x40ad64
push ebx
lea ecx, [esp + 0x24]
push ecx
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x20]
mov dword [esp + 0x34], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40ad64
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.0040117e
cmp dword [esp + 0x10], ebx
je 0x40ae20
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.0040117e
push 0xe
pop eax
mov ecx, dword [esp + 0x10a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1088]
xor ecx, esp
call fcn.004312e6
mov esp, ebp
pop ebp
ret 0x10
push dword [esp + 0x2c]
lea eax, [esp + 0x24]
push eax
call fcn.0040fa63
pop ecx
pop ecx
mov edi, dword [esp + 0x40]
mov byte [esp + 0x10a8], 0x11
call fcn.0040c54a
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.0040117e
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.0040117e
cmp dword [esp + 0x10], ebx
je 0x40aec8
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.0040117e
jmp 0x40a769
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.0040117e
cmp dword [esp + 0x10], ebx
je 0x40ac89
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40ac89
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.0040117e
cmp dword [esp + 0x10], ebx
je 0x40af44
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.0040117e
lea esi, [esp + 0x14]
call fcn.0040c46a
lea esi, [esp + 0x1c]
call fcn.0040c46a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.0040117e
push 0xc
jmp 0x40a888