Function at 0x40eba5
Capabilities:
Check http status code
Connect to http server
Create http request
Parse url
Resolve function by parsing pe exports
Send data
Send http request

Disassembly:
sub esp, 0x52c
mov eax, dword [0x439740]
xor eax, esp
mov dword [esp + 0x524], eax
mov eax, dword [esp + 0x530]
push ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x53c]
push ebp
push esi
mov dword [esp + 0x20], eax
mov esi, ecx
mov eax, dword [esp + 0x548]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
push edi
test eax, eax
je 0x40ebeb
and dword [eax], 0
mov edi, dword [edx]
mov eax, dword [edi]
mov dword [esp + 0x14], eax
jmp 0x40ec46
mov ebx, dword [eax + 0x20]
add eax, 0x10
test ebx, ebx
je 0x40ecea
xor ecx, ecx
test ebx, ebx
je 0x40ec39
cmp dword [eax + 0x14], 8
jb 0x40ec13
mov edx, dword [eax]
jmp 0x40ec15
mov edx, eax
movzx edx, word [edx + ecx*2]
cmp edx, 0x20
jb 0x40ecea
cmp edx, 0x22
je 0x40ecea
cmp edx, 0x7f
ja 0x40ecea
inc ecx
cmp ecx, ebx
jb 0x40ec09
lea ecx, [esp + 0x14]
call fcn.00409ca3
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x40ebf5
push 0x3c
pop edi
push edi
lea eax, [esp + 0x30]
push 0
push eax
call fcn.00415aa0
lea eax, [esp + 0xc4]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
mov ecx, 0x100
lea eax, [esp + 0x13c]
mov dword [esp + 0x40], 0x10
mov dword [esp + 0x48], eax
add esp, 0xc
cmp dword [esi + 0x14], 8
lea eax, [esp + 0x330]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x5c], ecx
jb 0x40eca2
mov esi, dword [esi]
lea ecx, [esp + 0x2c]
push ecx
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x40ecea
push 4
xor bl, bl
lea eax, [esp + 0xbc]
mov ecx, 0x4366ac
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40ecf1
test dx, dx
je 0x40ece6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40ecf1
add eax, esi
add ecx, esi
test dx, dx
jne 0x40ecc6
xor eax, eax
jmp 0x40ecf6
xor al, al
jmp 0x40ef44
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40ecfe
mov bl, 1
jmp 0x40ed37
mov ecx, 0x4366b8
lea eax, [esp + 0xb8]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40ed2e
test dx, dx
je 0x40ed2a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40ed2e
add eax, esi
add ecx, esi
test dx, dx
jne 0x40ed0a
xor eax, eax
jmp 0x40ed33
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40ecea
xor eax, eax
push eax
push eax
push eax
push eax
push 0x43652c
call dword [sym.imp.WININET.dll_InternetOpenW]
mov edi, eax
test edi, edi
jne 0x40ed55
xor bl, bl
jmp 0x40ef42
xor eax, eax
push eax
push eax
push 3
push eax
push eax
push dword [esp + 0x58]
lea eax, [esp + 0x148]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetConnectW]
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x40ed85
xor bl, bl
jmp 0x40ef3f
xor edx, edx
movzx ecx, bl
neg ecx
push edx
sbb ecx, ecx
and ecx, 0x800000
or ecx, 0x80000
push ecx
push edx
push edx
push edx
lea ecx, [esp + 0x344]
push ecx
push 0x4366c4
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
test esi, esi
jne 0x40edc0
xor bl, bl
jmp 0x40ef39
call fcn.00411dd2
mov ebx, eax
call fcn.00411dd2
push eax
push ebx
push 0x4367c0
push 0x4366d0
lea eax, [esp + 0xe8]
push 0x2c
push eax
call fcn.00412e56
xor eax, eax
lea ecx, [esp + 0xb0]
add esp, 0x18
mov word [esp + 0x12e], ax
lea eax, [esp + 0xd8]
push eax
call fcn.0040784b
push 0x4366e8
lea ecx, [esp + 0x84]
call fcn.0040784b
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [esp + 0x9c]
push ebx
push eax
lea ecx, [esp + 0x8c]
call fcn.0040af2b
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x40ee4a
lea eax, [esp + 0x80]
push 0x20000000
push 0xffffffffffffffff
push eax
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x20]
push eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x80], 0xf
push eax
mov dword [esp + 0x80], ebx
mov byte [esp + 0x70], bl
call fcn.0040f0d5
pop ecx
pop ecx
test al, al
je 0x40ef09
cmp dword [esp + 0x7c], 0x10
mov eax, dword [esp + 0x68]
jae 0x40ee9e
lea eax, [esp + 0x68]
push dword [esp + 0x78]
push eax
push ebx
push ebx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x40ef09
push ebx
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 8
push eax
lea eax, [esp + 0xb8]
push eax
push 0x13
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x40ef09
push 0xa
lea eax, [esp + 0xb4]
push ebx
push eax
call fcn.004135da
mov ecx, dword [esp + 0x28]
add esp, 0xc
test ecx, ecx
je 0x40eef0
mov dword [ecx], eax
cmp eax, 0xc8
sete bl
test bl, bl
je 0x40ef09
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.0040ef5d
mov bl, al
push 0
push 1
lea ecx, [esp + 0x70]
call fcn.004094bf
push 0
push 1
lea ecx, [esp + 0x88]
call fcn.004098d4
push 0
push 1
lea ecx, [esp + 0xa0]
call fcn.004098d4
push esi
call ebp
push dword [esp + 0x14]
call ebp
push edi
call ebp
mov al, bl
mov ecx, dword [esp + 0x534]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00410549
add esp, 0x52c
ret