Function at 0x409c90
Capabilities:
Initialize winhttp library
Prepare http request
Receive http response

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x593783
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x629070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x244], esi
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x409cdc
mov dword [esi + 0x6c], 0x80070003
xor eax, eax
jmp 0x40a415
mov eax, dword [esi + 4]
mov ecx, 0x61e2f4
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409d0a
test dx, dx
je 0x409d06
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409d0a
add eax, 4
add ecx, 4
test dx, dx
jne 0x409ce4
xor eax, eax
jmp 0x409d0f
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x409d37
mov edx, str.POST
lea ecx, [esi + 4]
call fcn.0040d7d0
test al, al
je 0x409d37
mov dword [esi + 0x6c], 0x80070057
xor eax, eax
jmp 0x40a415
mov eax, dword [esi + 4]
mov ecx, str.POST
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409d66
test dx, dx
je 0x409d62
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409d66
add eax, 4
add ecx, 4
test dx, dx
jne 0x409d40
xor eax, eax
jmp 0x409d6b
sbb eax, eax
or eax, 1
test eax, eax
sete al
or edi, 0xffffffff
test al, al
je 0x409e81
cmp dword [esi + 0x18], 0
je 0x409dc7
push str.chunked
lea ecx, [ebp - 0x224]
call fcn.0040dc80
push str.Transfer_Encoding
lea ecx, [ebp - 0x220]
mov dword [ebp - 4], 0
call fcn.0040dc80
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x220]
mov ecx, esi
push eax
call fcn.00409c20
mov byte [ebp - 4], 0
jmp 0x409e40
call fcn.004013a0
mov ecx, eax
test ecx, ecx
jne 0x409ddc
push 0x80004005
call fcn.004093f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x224], eax
mov dword [ebp - 4], 2
mov eax, dword [esi + 0x10]
mov eax, dword [eax - 0xc]
test eax, eax
jg 0x409dfe
mov eax, dword [esi + 0xc]
push eax
lea eax, [ebp - 0x224]
push str.application_json_r_ncontent_length:__d
push eax
call fcn.0040f840
add esp, 0xc
lea ecx, [ebp - 0x220]
push str.content_type
call fcn.0040dc80
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x220]
mov ecx, esi
push eax
call fcn.00409c20
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x220]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409e5d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov edx, dword [ebp - 0x224]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409e81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi + 0x20], 0
jne 0x409fc1
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x62e3f0]
cmp eax, dword [ecx + 4]
jle 0x409ee4
push 0x62e3f0
call fcn.0043895d
add esp, 4
cmp dword [0x62e3f0], 0xffffffff
jne 0x409ee4
mov ecx, 0x62e3f4
mov dword [0x62e3f4], 0
call fcn.0040dd40
push 0x596aa0
call fcn.00438ce7
add esp, 4
push 0x62e3f0
call fcn.0043891e
add esp, 4
mov edx, 0x61c2f4
mov ecx, 0x62e3f4
call fcn.0040d820
test al, al
je 0x409f06
push 0x61e3a8
mov ecx, 0x62e3f4
call fcn.0040db90
call fcn.004013a0
mov ecx, eax
test ecx, ecx
jne 0x409f1b
push 0x80004005
call fcn.004093f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x220], eax
mov dword [ebp - 4], 4
lea eax, [ebp - 0x220]
push dword [0x62e3f4]
push 0x61e3a8
push 0x61e2e0
push str._s__s__s
push eax
call fcn.0040f840
mov esi, dword [ebp - 0x220]
add esp, 0x14
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov ebx, dword [ebp - 0x244]
mov dword [ebx + 0x20], eax
test eax, eax
jne 0x409fa1
call fcn.00409640
mov dword [ebx + 0x6c], eax
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x409f9a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x40a415
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x409fbf
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, ebx
push dword [esi + 0x68]
push dword [esi + 0x64]
push dword [esi + 0x60]
push dword [esi + 0x5c]
push dword [esi + 0x20]
call dword [sym.imp.WINHTTP.dll_WinHttpSetTimeouts]
call fcn.004013a0
mov ecx, eax
test ecx, ecx
jne 0x409feb
push 0x80004005
call fcn.004093f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x230], eax
mov dword [ebp - 4], 5
call fcn.004013a0
mov ecx, eax
test ecx, ecx
jne 0x40a015
push 0x80004005
call fcn.004093f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], 0
push eax
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x224], 0
push eax
lea eax, [ebp - 0x230]
mov ecx, esi
push eax
call fcn.0040a440
mov ebx, dword [ebp - 0x22c]
mov edi, dword [ebp - 0x230]
test eax, eax
je 0x40a0c5
push 0
push dword [ebp - 0x220]
push edi
push dword [esi + 0x20]
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov ecx, eax
mov dword [ebp - 0x248], ecx
test ecx, ecx
je 0x40a0c5
xor eax, eax
mov edx, 0x800000
cmp dword [ebp - 0x224], 2
cmove eax, edx
push eax
push 0
push 0
push 0
push ebx
push dword [esi + 4]
push ecx
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov dword [ebp - 0x240], eax
test eax, eax
jne 0x40a0d4
push dword [ebp - 0x248]
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
call fcn.00409640
mov dword [esi + 0x6c], eax
xor esi, esi
jmp 0x40a3d9
cmp dword [ebp - 0x224], 2
jne 0x40a0ff
push 4
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x220], 0x3100
push ecx
push 0x1f
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
mov eax, dword [ebp - 0x240]
push eax
mov ecx, esi
call fcn.0040a6c0
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040a740
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], 0
push eax
call fcn.00409710
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x220]
cmp dword [esi - 0xc], 0
jne 0x40a15c
cmp dword [ebp + 8], 0
mov esi, dword [ebp - 0x244]
je 0x40a2d0
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040af50
jmp 0x40a2d0
push 0x208
xorps xmm0, xmm0
mov dword [ebp - 0x234], 0
lea eax, [ebp - 0x21c]
movq qword [ebp - 0x23c], xmm0
push 0
push eax
mov dword [ebp - 0x23c], 3
call fcn.0056ebe0
add esp, 0xc
lea eax, [ebp - 0x21c]
push esi
push 0x104
push eax
call fcn.00574a31
add esp, 0xc
mov dword [ebp - 0x224], 0
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x238], eax
lea eax, [ebp - 0x224]
push eax
call fcn.00409750
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 8
push eax
mov dword [ebp - 0x228], 0
call fcn.00409780
mov esi, dword [ebp - 0x240]
lea eax, [ebp - 0x23c]
push 0xc
push eax
push 0x26
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x40a21d
lea ecx, [ebp - 0x228]
call fcn.0040d700
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 7
call fcn.0040d700
jmp 0x40a2af
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x40a26e
push ecx
push eax
push 0x1002
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x40a258
lea ecx, [ebp - 0x228]
call fcn.0040d700
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 7
call fcn.0040d700
jmp 0x40a2af
mov eax, dword [ebp - 0x228]
push dword [eax - 0xc]
push eax
push 0x1003
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
mov edx, dword [ebp - 0x228]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a28e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, esi
mov edx, dword [ebp - 0x224]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a2af
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00409640
mov ecx, eax
test ecx, ecx
jns 0x40a2ca
mov eax, dword [ebp - 0x244]
xor esi, esi
mov dword [eax + 0x6c], ecx
jmp 0x40a3ce
mov esi, dword [ebp - 0x244]
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x240]
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
jne 0x40a2f9
call fcn.00409640
mov dword [esi + 0x6c], eax
jmp 0x40a3aa
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040a840
test eax, eax
jne 0x40a317
call fcn.00409640
mov dword [esi + 0x6c], eax
jmp 0x40a3aa
cmp dword [esi + 0x70], 0
je 0x40a34c
push 4
lea eax, [ebp - 0x228]
mov dword [ebp - 0x228], 2
push eax
push 0x3f
push dword [ebp - 0x240]
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
jne 0x40a34c
call fcn.00409640
mov dword [esi + 0x6c], eax
jmp 0x40a3aa
push 0
push dword [ebp - 0x240]
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
jne 0x40a368
call fcn.00409640
mov dword [esi + 0x6c], eax
jmp 0x40a3aa
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040acc0
push dword [esi + 0x38]
call fcn.005749dd
add esp, 4
cmp eax, 0x197
jne 0x40a390
mov dword [esi + 0x6c], 0xffffffff
jmp 0x40a3aa
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040abb0
push dword [ebp - 0x240]
mov ecx, esi
call fcn.0040adc0
push dword [ebp - 0x240]
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
call esi
push dword [ebp - 0x248]
call esi
mov eax, dword [ebp - 0x244]
mov esi, dword [eax + 0x6c]
not esi
shr esi, 0x1f
lea ecx, [ebp - 0x220]
call fcn.0040d700
lea edx, [ebx - 0x10]
mov byte [ebp - 4], 5
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a3f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x40a413
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004387fb
mov esp, ebp
pop ebp
ret 4