Function at 0x10009140
Capabilities:
Initialize winhttp library
Make an http request with a cookie
Prepare http request
Read http header
Receive http response
Send data
Send http request
Set http header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e0ffb
mov eax, dword fs:[0]
push eax
mov eax, 0x1110
call fcn.10085b60
mov eax, dword [0x10114d18]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x18], 0
mov eax, dword [ebp + 8]
ja 0x1000918d
mov dword [esi + 0xf8], 3
xor al, al
jmp 0x10009dcb
push eax
lea ecx, [ebp - 0x1080]
call fcn.100069d0
cmp dword [ebp - 0x106c], 8
lea eax, [ebp - 0x1080]
push 0x100ea7e4
cmovae eax, dword [ebp - 0x1080]
push eax
mov dword [ebp - 4], 0
call fcn.100af8dd
add esp, 8
test eax, eax
jne 0x100091d2
mov eax, 0x100ea7e4
mov ecx, 3
jmp 0x10009206
cmp dword [ebp - 0x106c], 8
lea eax, [ebp - 0x1080]
push str.POST
cmovae eax, dword [ebp - 0x1080]
push eax
call fcn.100af8dd
add esp, 8
test eax, eax
jne 0x10009da8
mov eax, str.POST
mov ecx, 4
push ecx
push eax
lea ecx, [ebp - 0x1080]
call fcn.10009fd0
mov eax, dword [esi]
mov byte [ebp - 0x1081], 1
test eax, eax
jne 0x10009251
cmp dword [esi + 0x128], 8
lea eax, [esi + 0x114]
jb 0x10009231
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov dword [esi], eax
test eax, eax
jne 0x10009251
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x10009dad
push dword [esi + 0x184]
push dword [esi + 0x180]
push dword [esi + 0x17c]
push dword [esi + 0x178]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpSetTimeouts]
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.10087b80
push 0xa28
lea eax, [ebp - 0x1050]
push 0
push eax
call fcn.10087b80
lea eax, [ebp - 0x420]
mov dword [ebp - 0x1118], 0
mov dword [ebp - 0x110c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x1050]
mov dword [ebp - 0x1110], 0
add esp, 0x18
mov dword [ebp - 0x10f0], eax
cmp dword [esi + 0x1c], 8
lea eax, [esi + 8]
movlpd qword [ebp - 0x1104], xmm0
movlpd qword [ebp - 0x10fc], xmm0
mov dword [ebp - 0x10f4], 0
movlpd qword [ebp - 0x10e8], xmm0
mov dword [ebp - 0x111c], 0x3c
mov dword [ebp - 0x1108], 0x104
mov dword [ebp - 0x10ec], 0x514
mov dword [ebp - 0x1114], 1
jb 0x1000931e
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x111c]
push ecx
push 0
push dword [esi + 0x18]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCrackUrl]
test eax, eax
je 0x10009dba
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10009342
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [esi + 0x20]
call fcn.10009fd0
push 0
push dword [ebp - 0x1104]
lea eax, [ebp - 0x420]
push eax
push dword [esi]
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov dword [ebp - 0x10a4], eax
test eax, eax
je 0x10009dba
xor ecx, ecx
mov edx, 0x800000
cmp dword [ebp - 0x1110], 2
cmove ecx, edx
cmp dword [ebp - 0x106c], 8
push ecx
push 0
push 0
push 0
push dword [ebp - 0x10f0]
lea edx, [ebp - 0x1080]
cmovae edx, dword [ebp - 0x1080]
push edx
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov edi, eax
mov dword [ebp - 0x1098], edi
test edi, edi
je 0x10009d9a
cmp byte [esi + 4], 0
jne 0x100093fb
cmp dword [ebp - 0x1110], 2
jne 0x100093fb
push 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x1090], 0x3100
push eax
push 0x1f
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
mov byte [ebp - 0x1091], 0
xor ecx, ecx
mov eax, ecx
inc ecx
mov dword [ebp - 0x1088], ecx
cmp eax, 3
jae 0x10009d81
mov ecx, dword [esi + 0xd8]
test ecx, ecx
je 0x1000944f
cmp dword [esi + 0xdc], 8
lea eax, [esi + 0xc8]
jb 0x10009431
mov eax, dword [eax]
push 0x1000000
push ecx
push eax
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpAddRequestHeaders]
test eax, eax
jne 0x1000944f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
cmp dword [esi + 0xb8], 0
jbe 0x1000953b
push 8
xor eax, eax
mov dword [ebp - 0x1068], 0
push str.Cookie:
lea ecx, [ebp - 0x1068]
mov dword [ebp - 0x1058], 0
mov dword [ebp - 0x1054], 7
mov word [ebp - 0x1068], ax
call fcn.10009fd0
cmp dword [esi + 0xbc], 8
lea ecx, [esi + 0xa8]
mov byte [ebp - 4], 1
jb 0x100094ae
mov ecx, dword [esi + 0xa8]
push dword [esi + 0xb8]
push ecx
lea ecx, [ebp - 0x1068]
call fcn.10009e50
cmp dword [ebp - 0x1054], 8
lea eax, [ebp - 0x1068]
push 0x1000000
push dword [ebp - 0x1058]
cmovae eax, dword [ebp - 0x1068]
push eax
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpAddRequestHeaders]
test eax, eax
jne 0x100094f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
mov ecx, dword [ebp - 0x1054]
mov byte [ebp - 4], 0
cmp ecx, 8
jb 0x1000953b
mov edx, dword [ebp - 0x1068]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10009531
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009de8
push ecx
push edx
call fcn.100858f4
add esp, 8
cmp dword [esi + 0xf0], 0
jbe 0x10009639
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x10c0], 0
push 0
push eax
mov dword [ebp - 0x10c8], 3
call fcn.10087b80
lea eax, [esi + 0xe0]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x10009580
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.100af70e
add esp, 0xc
lea eax, [ebp - 0x218]
mov dword [ebp - 0x10c4], eax
lea eax, [ebp - 0x10c8]
push 0xc
push eax
push 0x26
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x100095c3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0x140]
test eax, eax
je 0x10009639
cmp dword [esi + 0x144], 8
lea ecx, [esi + 0x130]
jb 0x100095de
mov ecx, dword [ecx]
add eax, eax
push eax
push ecx
push 0x1002
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x100095fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0x158]
test eax, eax
je 0x10009639
cmp dword [esi + 0x15c], 8
lea ecx, [esi + 0x148]
jb 0x10009619
mov ecx, dword [ecx]
add eax, eax
push eax
push ecx
push 0x1003
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x10009639
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
cmp byte [ebp + 0xc], 0
je 0x1000966b
push 4
lea eax, [ebp - 0x1090]
mov dword [ebp - 0x1090], 2
push eax
push 0x3f
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x1000966b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov byte [ebp - 0x108c], 0
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
jne 0x100098a3
lea eax, [ebp - 0x1060]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x1060], xmm0
call dword [sym.imp.WINHTTP.dll_WinHttpGetIEProxyConfigForCurrentUser]
test eax, eax
je 0x100098e9
mov eax, dword [ebp - 0x105c]
test eax, eax
je 0x1000979d
cmp dword [esi + 0x1c], 8
xorps xmm0, xmm0
mov dword [ebp - 0x10d8], eax
lea eax, [esi + 8]
mov dword [ebp - 0x10e0], 3
mov dword [ebp - 0x10dc], 1
mov dword [ebp - 0x10cc], 1
mov dword [ebp - 0x10d0], 0
mov dword [ebp - 0x10d4], 0
movq qword [ebp - 0x10b0], xmm0
mov dword [ebp - 0x10a8], 0
jb 0x10009713
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x10b0]
push ecx
lea ecx, [ebp - 0x10e0]
push ecx
push eax
push dword [esi]
call dword [sym.imp.WINHTTP.dll_WinHttpGetProxyForUrl]
test eax, eax
je 0x1000984d
push 0xc
lea eax, [ebp - 0x10b0]
push eax
push 0x26
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
je 0x10009774
push 0
push 0
push 0
push 0
push 0
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
mov ecx, dword [ebp - 0x108c]
test eax, eax
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov dword [ebp - 0x108c], ecx
mov eax, dword [ebp - 0x10ac]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
test eax, eax
je 0x10009787
push eax
call edi
mov eax, dword [ebp - 0x10a8]
test eax, eax
je 0x10009859
push eax
call edi
jmp 0x10009859
mov edi, dword [ebp - 0x1058]
test edi, edi
je 0x10009879
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x10bc], 3
xorps xmm0, xmm0
push 0
push eax
movlpd qword [ebp - 0x10b8], xmm0
call fcn.10087b80
push edi
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.100af70e
mov edi, dword [ebp - 0x1054]
lea eax, [ebp - 0x218]
add esp, 0x18
mov dword [ebp - 0x10b8], eax
test edi, edi
je 0x10009832
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.10087b80
push edi
lea eax, [ebp - 0x628]
push 0x104
push eax
call fcn.100af70e
lea eax, [ebp - 0x628]
add esp, 0x18
mov dword [ebp - 0x10b4], eax
push 0xc
lea eax, [ebp - 0x10bc]
push eax
push 0x26
push dword [ebp - 0x1098]
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x10009859
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
mov eax, dword [ebp - 0x105c]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
test eax, eax
je 0x1000986c
push eax
call edi
mov eax, dword [ebp - 0x1058]
test eax, eax
je 0x10009879
push eax
call edi
mov eax, dword [ebp - 0x1054]
test eax, eax
je 0x1000988a
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [ebp - 0x108c], 0
mov edi, dword [ebp - 0x1098]
mov ecx, dword [ebp - 0x1088]
je 0x10009404
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x100098dc
lea ecx, [ebp - 0x1090]
mov dword [ebp - 0x1090], 0
push ecx
push dword [esi + 0xc4]
push eax
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
test eax, eax
jne 0x100098dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
jne 0x10009900
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x1088]
mov dword [esi + 0xf8], eax
jmp 0x10009404
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x1088], 0
je 0x100099c5
push 0
lea eax, [ebp - 0x1088]
push eax
push 0
push 0
push 0x13
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
jne 0x1000993d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x100099c5
mov eax, dword [ebp - 0x1088]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10085b52
mov edi, eax
add esp, 4
test edi, edi
je 0x100099c5
mov ecx, dword [ebp - 0x1088]
add ecx, ecx
push ecx
push 0
push edi
call fcn.10087b80
add esp, 0xc
lea eax, [ebp - 0x1088]
push 0
push eax
push edi
push 0
push 0x13
push dword [ebp - 0x1098]
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
je 0x100099bc
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100099a0
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [esi + 0xfc]
call fcn.10009fd0
push edi
call fcn.10085902
add esp, 4
mov eax, dword [esi + 0x80]
mov ecx, 0x2800
xor edi, edi
mov dword [ebp - 0x10a0], ecx
test eax, eax
je 0x100099eb
push eax
call fcn.10085902
add esp, 4
mov dword [esi + 0x80], edi
push 0x2800
call fcn.10085b52
add esp, 4
mov dword [esi + 0x80], eax
test eax, eax
je 0x10009d74
push 0x2800
push 0
push eax
call fcn.10087b80
add esp, 0xc
nop word [eax + eax]
lea eax, [ebp - 0x1088]
mov dword [ebp - 0x1088], 0
push eax
push dword [ebp - 0x1098]
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
je 0x10009b9f
mov edx, dword [esi + 0x88]
test edx, edx
je 0x10009a9c
mov ecx, dword [esi + 0x8c]
test ecx, ecx
je 0x10009a9c
movd xmm1, edi
mov eax, edi
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
sub esp, 8
movd xmm0, ecx
addsd xmm1, qword [eax*8 + 0x100ea920]
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
mulsd xmm1, qword [0x100ea918]
addsd xmm0, qword [ecx*8 + 0x100ea920]
divsd xmm1, xmm0
movsd qword [esp], xmm1
call edx
add esp, 8
mov eax, dword [ebp - 0x1088]
inc eax
push eax
call fcn.10085b52
add esp, 4
mov dword [ebp - 0x109c], eax
test eax, eax
je 0x10009bab
mov ecx, dword [ebp - 0x1088]
inc ecx
push ecx
push 0
push eax
call fcn.10087b80
add esp, 0xc
mov dword [ebp - 0x108c], 0
lea eax, [ebp - 0x108c]
push eax
push dword [ebp - 0x1088]
push dword [ebp - 0x109c]
push dword [ebp - 0x1098]
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
je 0x10009b8f
mov ecx, dword [ebp - 0x108c]
mov edx, dword [ebp - 0x10a0]
lea eax, [ecx + edi]
cmp eax, edx
jbe 0x10009b71
mov eax, dword [esi + 0x80]
add edx, edx
push edx
mov dword [ebp - 0x1090], eax
mov dword [ebp - 0x10a0], edx
call fcn.10085b52
add esp, 4
mov dword [esi + 0x80], eax
test eax, eax
je 0x10009d5b
mov ecx, dword [ebp - 0x10a0]
push ecx
push 0
push eax
call fcn.10087b80
push edi
push dword [ebp - 0x1090]
push dword [esi + 0x80]
call fcn.10088140
push dword [ebp - 0x1090]
call fcn.10085902
mov ecx, dword [ebp - 0x108c]
add esp, 0x1c
mov eax, dword [esi + 0x80]
push ecx
push dword [ebp - 0x109c]
add eax, edi
push eax
call fcn.10088140
add esp, 0xc
add edi, dword [ebp - 0x108c]
push dword [ebp - 0x109c]
call fcn.10085902
add esp, 4
jmp 0x10009bab
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xf8], eax
cmp dword [ebp - 0x1088], 0
lea eax, [esi + 0x88]
ja 0x10009a20
mov cl, byte [ebp - 0x1081]
mov edx, dword [eax]
mov byte [ebp - 0x1081], cl
test edx, edx
je 0x10009c1d
mov ecx, dword [esi + 0x8c]
test ecx, ecx
je 0x10009c1d
movd xmm1, edi
mov eax, edi
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
sub esp, 8
movd xmm0, ecx
addsd xmm1, qword [eax*8 + 0x100ea920]
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
mulsd xmm1, qword [0x100ea918]
addsd xmm0, qword [ecx*8 + 0x100ea920]
divsd xmm1, xmm0
movsd qword [esp], xmm1
call edx
add esp, 8
mov dword [esi + 0x84], edi
lea eax, [esi + 0x68]
xor edi, edi
mov dword [ebp - 0x108c], 1
cmp dword [eax + 0x14], 8
mov dword [ebp - 0x109c], edi
jb 0x10009c40
mov eax, dword [eax]
push 5
push str.utf_8
push eax
call fcn.100afa2d
add esp, 0xc
test eax, eax
jne 0x10009c65
mov edi, 0xfde9
mov dword [ebp - 0x108c], eax
mov dword [ebp - 0x109c], edi
mov eax, dword [esi + 0x84]
push 0
push 0
inc eax
push eax
push dword [esi + 0x80]
push dword [ebp - 0x108c]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
call edi
mov dword [ebp - 0x1090], eax
test eax, eax
jg 0x10009cca
mov eax, dword [esi + 0x84]
push 0
push 0
inc eax
mov dword [ebp - 0x109c], 0
push eax
push dword [esi + 0x80]
mov dword [ebp - 0x108c], 1
push 1
push 0
call edi
mov dword [ebp - 0x1090], eax
test eax, eax
jle 0x10009d52
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10085b52
mov edi, eax
add esp, 4
test edi, edi
je 0x10009d52
mov ecx, dword [ebp - 0x1090]
add ecx, ecx
push ecx
push 0
push edi
call fcn.10087b80
mov eax, dword [esi + 0x84]
add esp, 0xc
inc eax
push dword [ebp - 0x1090]
push edi
push eax
push dword [esi + 0x80]
push dword [ebp - 0x108c]
push dword [ebp - 0x109c]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x10009d49
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10009d30
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [esi + 0x50]
call fcn.10009fd0
push edi
call fcn.10085902
add esp, 4
mov byte [ebp - 0x1091], 1
jmp 0x10009d7b
mov eax, dword [ebp - 0x1090]
xor cl, cl
mov dword [esi + 0x80], eax
lea eax, [esi + 0x88]
jmp 0x10009bc4
mov byte [ebp - 0x1081], 0
mov edi, dword [ebp - 0x1098]
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov al, byte [ebp - 0x1081]
and al, byte [ebp - 0x1091]
mov byte [ebp - 0x1081], al
push dword [ebp - 0x10a4]
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
jmp 0x10009dba
mov eax, 0x57
mov dword [esi + 0xf8], eax
mov byte [ebp - 0x1081], 0
lea ecx, [ebp - 0x1080]
call fcn.10006d90
mov al, byte [ebp - 0x1081]
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.100858b1
mov esp, ebp
pop ebp
ret 0xc
call fcn.10095328
int3