Function at 0x401820
Capabilities:
Connect to http server
Create http request
Parse url
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x420886
mov eax, dword fs:[0]
push eax
sub esp, 0x4fc
mov eax, dword [0x431010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x4f0], ecx
mov dword [ebp - 4], 0
mov eax, dword [eax + 0x24]
test eax, eax
je 0x401875
mov dword [eax], 0
cmp dword [edx + 0x14], 0x10
lea eax, [ebp - 0x38]
mov dword [ebp - 0x4b0], eax
lea esi, [edx + 0x10]
lea eax, [ebp - 0x238]
mov dword [ebp - 0x4a8], 0
mov dword [ebp - 0x4a4], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x438]
movlpd qword [ebp - 0x49c], xmm0
mov dword [ebp - 0x488], eax
mov eax, dword [esi]
movlpd qword [ebp - 0x494], xmm0
mov dword [ebp - 0x48c], 0
movlpd qword [ebp - 0x480], xmm0
mov dword [ebp - 0x4b4], 0x3c
mov dword [ebp - 0x4ac], 0x10
mov dword [ebp - 0x4a0], 0x100
mov dword [ebp - 0x484], 0x100
jb 0x4018fe
add eax, dword [edx]
mov edx, dword [edx]
jmp 0x401900
add eax, edx
push ecx
push eax
push edx
lea ecx, [ebp - 0x478]
call fcn.00402a60
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4b4]
cmp dword [ebp - 0x464], 8
lea eax, [ebp - 0x478]
push ecx
cmovae eax, dword [ebp - 0x478]
push 0
push dword [esi]
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x401944
lea esi, [eax + 1]
jmp 0x401d28
movaps xmm0, xmmword [0x42ce90]
lea ecx, [ebp - 0x4ec]
movups xmmword [ebp - 0x4e4], xmm0
mov dword [ebp - 0x4d4], 0x35
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov dword [ebp - 0x4ec], 0x70747468
mov word [ebp - 0x4e8], 0x73
movups xmmword [ebp - 0x4d0], xmm0
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4bc], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401996
sub ecx, edx
lea eax, [ebp - 0x4ec]
push ecx
push eax
lea ecx, [ebp - 0x4d0]
call fcn.00402d00
mov byte [ebp - 4], 2
lea eax, [ebp - 0x4d0]
push eax
lea eax, [ebp - 0x508]
push eax
call fcn.00402350
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 8
jb 0x4019d5
mov eax, dword [eax]
lea ecx, [ebp - 0x38]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x4019fe
test dx, dx
je 0x4019fa
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x4019fe
add ecx, 4
add eax, 4
test dx, dx
jne 0x4019d8
xor esi, esi
jmp 0x401a03
sbb esi, esi
or esi, 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x508]
call fcn.004029d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4d0]
call fcn.004027c0
test esi, esi
jne 0x401ab1
lea edi, [esi + 1]
mov ecx, dword [ebp - 0x4b8]
mov dword [ebp - 0x440], 0
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
sar eax, 3
imul esi, eax, 0xaaaaaaab
call fcn.0040def3
xor edx, edx
div esi
mov eax, dword [ebp - 0x4b8]
mov eax, dword [eax]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00402840
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 0x10
jb 0x401a79
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
mov dword [ebp - 0x440], esi
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4e8]
call fcn.004027c0
test esi, esi
jne 0x401cbd
mov esi, 3
jmp 0x401d13
xor ecx, ecx
cmp dword [0x4321a4], 2
lea esi, [ecx + 0x7f]
jl 0x401b40
pmovsxbd xmm3, dword [str.http]
pmulld xmm3, xmmword [str.____SSSSggggwwwwyyyy]
paddd xmm3, xmmword [0x42ced0]
mov eax, 6
movaps xmm2, xmm3
movaps xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x42cf00]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x42cf00]
shufps xmm2, xmm0, 0xdd
movd xmm0, eax
paddd xmm2, xmm3
psrad xmm2, xmm0
mov eax, 0x1f
movaps xmm1, xmm2
movd xmm0, eax
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x42cef0]
psubd xmm3, xmm1
movups xmmword [ebp - 0x4c8], xmm3
jmp 0x401b5d
movsx eax, byte [ecx + str.http]
imul eax, eax, 0x3b
add eax, 0x77
cdq
idiv esi
mov dword [ebp + ecx*4 - 0x4c8], edx
inc ecx
cmp ecx, 4
jl 0x401b40
mov eax, dword [ebp - 0x4c8]
xorps xmm0, xmm0
add eax, 0xffffff89
mov byte [ebp - 0x4cc], 0
movups xmmword [ebp - 0x508], xmm0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
mov eax, ecx
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov eax, dword [ebp - 0x4c4]
add eax, 0xffffff89
mov byte [ebp - 0x4d0], dl
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
mov eax, ecx
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov eax, dword [ebp - 0x4c0]
add eax, 0xffffff89
mov byte [ebp - 0x4cf], dl
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
mov eax, ecx
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov eax, dword [ebp - 0x4bc]
add eax, 0xffffff89
mov byte [ebp - 0x4ce], dl
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
mov eax, ecx
lea ecx, [ebp - 0x4d0]
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov byte [ebp - 0x4cd], dl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401c23
sub ecx, edx
lea eax, [ebp - 0x4d0]
push ecx
push eax
lea ecx, [ebp - 0x508]
call fcn.00402d00
mov byte [ebp - 4], 4
lea eax, [ebp - 0x508]
push eax
lea eax, [ebp - 0x4e8]
push eax
call fcn.00402350
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 8
jb 0x401c62
mov eax, dword [eax]
lea ecx, [ebp - 0x38]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x401c8b
test dx, dx
je 0x401c87
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x401c8b
add ecx, 4
add eax, 4
test dx, dx
jne 0x401c65
xor esi, esi
jmp 0x401c90
sbb esi, esi
or esi, 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4e8]
call fcn.004029d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x508]
call fcn.004027c0
xor edi, edi
test esi, esi
je 0x401a2c
lea esi, [edi + 2]
jmp 0x401d28
push 0
push 0
push 3
push 0
push 0
push dword [ebp - 0x49c]
lea eax, [ebp - 0x238]
mov dword [ebp - 0x43c], 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetConnectW]
mov esi, eax
mov dword [ebp - 0x43c], esi
mov byte [ebp - 4], 9
test esi, esi
jne 0x401d75
lea esi, [eax + 4]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x43c]
test eax, eax
je 0x401d13
push eax
call edi
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x440]
test eax, eax
je 0x401d28
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x478]
call fcn.004029d0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp + 0x24]
cmp ecx, 0x10
jb 0x401f11
mov edx, dword [ebp + 0x10]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401f07
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401f42
jmp 0x401f07
lea eax, [ebp + 0x10]
shl edi, 0x17
push eax
lea eax, [ebp - 0x4e8]
mov dword [ebp - 0x45c], 0
push eax
or edi, 0x80000
call fcn.00402350
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 8
jb 0x401da4
mov eax, dword [eax]
push 0
push edi
push 0
push 0
push 0
lea ecx, [ebp - 0x438]
push ecx
push eax
push esi
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov edi, eax
mov dword [ebp - 0x45c], edi
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x4e8]
call fcn.004029d0
test edi, edi
jne 0x401ddf
lea esi, [edi + 5]
jmp 0x401eed
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x448], 0
push 0x42c96f
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], 0
movups xmmword [ebp - 0x458], xmm0
call fcn.00402d00
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x458]
cmp dword [ebp - 0x444], 0x10
push 0x20000000
push dword [ebp - 0x448]
cmovae eax, dword [ebp - 0x458]
push eax
push edi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionA]
lea eax, [ebp + 0x28]
push 4
push eax
push 5
push edi
call esi
push 4
lea eax, [ebp + 0x28]
push eax
push 6
push edi
call esi
push dword [ebp - 0x448]
cmp dword [ebp - 0x444], 0x10
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push 0
push 0
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
jne 0x401e85
lea esi, [eax + 6]
jmp 0x401ede
push 0
lea eax, [ebp - 0x460]
mov dword [ebp - 0x460], 8
push eax
lea eax, [ebp - 0x18]
push eax
push 0x13
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x401eae
lea esi, [eax + 7]
jmp 0x401ede
push 0xa
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.0040e7a8
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x4b8]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x401ecf
mov dword [ecx], edx
push dword [ebp - 0x4f0]
push edi
call fcn.00401f50
movzx esi, al
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x458]
call fcn.004027c0
mov byte [ebp - 4], 9
test edi, edi
je 0x401cfc
push edi
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
jmp 0x401d02
push ecx
push edx
call fcn.00409854
add esp, 8
mov dword [ebp + 0x20], 0
mov eax, esi
mov dword [ebp + 0x24], 0xf
mov byte [ebp + 0x10], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004096fc
mov esp, ebp
pop ebp
ret 0x24
call fcn.0040ea8b
int3