Function at 0x412337
Capabilities:
Initialize winhttp library
Prepare http request
Receive http response
Reference http user-agent string
Send data
Send http request

Disassembly:
push 0x178
mov eax, 0x43b09d
call fcn.00438b4c
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x88], edi
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
push 0x38
lea eax, [ebp - 0x180]
mov dword [ebp - 4], ebx
push ebx
push eax
call fcn.00420070
or eax, 0xffffffff
mov dword [ebp - 0x184], 0x3c
add esp, 0xc
mov dword [ebp - 0x17c], eax
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x15c], eax
jb 0x4123b7
mov eax, dword [esi]
jmp 0x4123b9
mov eax, esi
lea ecx, [ebp - 0x184]
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCrackUrl]
test eax, eax
jne 0x412425
push esi
mov edx, str.Cant_parse:
lea ecx, [ebp - 0x5c]
call fcn.0040764b
mov esi, eax
xor ebx, ebx
push ecx
inc ebx
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], bl
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 2
test eax, eax
je 0x41240a
mov edx, esi
lea ecx, [ebp - 0x134]
call fcn.0040e5c1
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
push 0
push ebx
lea ecx, [ebp - 0x5c]
call fcn.004040a2
jmp 0x4129d1
push ebx
push ebx
push ebx
push ebx
push str.Mozilla___5.0__Windows_NT_6.3__WOW64__Trident___7.0__rv:11.0__like_Gecko
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov ebx, eax
mov dword [ebp - 0x88], ebx
test ebx, ebx
je 0x41299b
push dword [ebp + 0x14]
mov eax, 0x3e8
push dword [ebp + 0x10]
push eax
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpSetTimeouts]
push ecx
test eax, eax
je 0x41297a
mov ecx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x170]
lea eax, [ecx + eax*2]
push eax
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00404b70
mov byte [ebp - 4], 3
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x48], 8
push 0
push dword [ebp - 0x16c]
cmovae eax, dword [ebp - 0x5c]
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov ebx, eax
mov dword [ebp - 0x84], ebx
test ebx, ebx
je 0x412930
cmp dword [esi + 0x14], 8
jb 0x4124b3
mov ecx, dword [esi]
jmp 0x4124b5
mov ecx, esi
mov eax, dword [esi + 0x10]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x170]
lea ecx, [ecx + eax*2]
cmp ecx, edx
jae 0x4124f5
push 9
pop ebx
movzx esi, word [ecx]
mov eax, esi
cmp eax, 0x20
je 0x4124e8
cmp eax, 0x3a
je 0x4124e8
lea eax, [esi - 0x30]
cmp ax, bx
ja 0x4124ef
add ecx, 2
cmp ecx, edx
jb 0x4124d1
mov ebx, dword [ebp - 0x84]
push 0
sub edx, ecx
mov dword [ebp - 0x18], 7
pop eax
sar edx, 1
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], ax
mov byte [ebp - 4], 4
je 0x412518
push edx
push ecx
jmp 0x412526
mov esi, 0x4479d4
push esi
call fcn.00403808
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004040f9
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push eax
push str.POST
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov esi, eax
test esi, esi
je 0x4128e7
push 4
lea eax, [ebp - 0x8c]
xor ebx, ebx
push eax
push 0x3f
inc ebx
push esi
mov dword [ebp - 0x8c], ebx
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
je 0x4128a1
and dword [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 5
cmp dword [eax + 0x10], 0
sete al
test al, al
je 0x4125af
push str.Content_Type:_multipart_form_data__boundary4jhf94jdfksjhf452f186c710c89c4_r_n
call fcn.00403808
pop ecx
push eax
push str.Content_Type:_multipart_form_data__boundary4jhf94jdfksjhf452f186c710c89c4_r_n
jmp 0x4125c0
push str.Content_Type:_application_json__r_n
call fcn.00403808
pop ecx
push eax
push str.Content_Type:_application_json__r_n
lea ecx, [ebp - 0x44]
call fcn.004040f9
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
xor ecx, ecx
push ecx
push dword [ebp + 0xc]
push ecx
push ecx
push dword [ebp - 0x34]
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
je 0x412878
and dword [ebp - 0x80], 0
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0xc]
push dword [ebp - 0x70]
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
test eax, eax
je 0x41284f
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x80], eax
jne 0x412826
push 0
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x4127fd
and dword [ebp - 0x64], 0
lea eax, [ebp - 0x6c]
and dword [ebp - 0x6c], 0
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
jne 0x4126fc
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x41266e
mov edx, str.Cant_query_data_available
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
jmp 0x41278c
push eax
lea ecx, [ebp - 0x7c]
call fcn.00412a21
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x7c]
and dword [ebp - 0x70], 0
push ecx
push eax
push dword [ebp - 0x7c]
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
je 0x4127d4
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x6c]
jne 0x4127b2
mov byte [ebp - 0x90], 0
lea ecx, [ebp - 0x68]
push dword [ebp - 0x90]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push dword [ebp - 0x64]
call fcn.00412a58
lea eax, [ebp - 0x6c]
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
je 0x412741
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 5
call fcn.0040cf44
mov eax, dword [ebp - 0x6c]
test eax, eax
jne 0x412689
push eax
push ebx
lea ecx, [ebp - 0x44]
call fcn.004040a2
push esi
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
call esi
push dword [ebp - 0x84]
call esi
push 0
push ebx
lea ecx, [ebp - 0x2c]
call fcn.004040a2
push 0
push ebx
lea ecx, [ebp - 0x5c]
call fcn.004040a2
push dword [ebp - 0x88]
call esi
jmp 0x4129d1
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
push 9
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x144]
test eax, eax
je 0x41276e
mov edx, str.Cant_query_data_available
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
lea ecx, [ebp - 0x7c]
call fcn.0040cf44
push 0
push ebx
lea ecx, [ebp - 0x44]
call fcn.004040a2
push 0
push ebx
lea ecx, [ebp - 0x2c]
call fcn.004040a2
push 0
push ebx
lea ecx, [ebp - 0x5c]
call fcn.004040a2
jmp 0x4129dc
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 7
test eax, eax
je 0x41276e
mov edx, str.Read_data_doesnt_equal_sended_data
jmp 0x412763
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 8
test eax, eax
je 0x41276e
mov edx, str.Cant_read_data
jmp 0x412763
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xb
test eax, eax
je 0x41266e
mov edx, str.Cant_receive_response
jmp 0x412663
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xc
test eax, eax
je 0x41266e
mov edx, str.Written_data_doesnt_equal_sended_data
jmp 0x412663
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x41266e
mov edx, str.Cant_write_data
jmp 0x412663
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xe
test eax, eax
je 0x41266e
mov edx, str.Cant_send_request
jmp 0x412663
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x4128cc
mov edx, str.Cant_set_options
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
jmp 0x412797
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x412912
mov edx, str.Cant_open_request
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
xor ebx, ebx
inc ebx
jmp 0x412797
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x11
test eax, eax
je 0x41295b
mov edx, str.Cant_connect
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
push 0
push 1
jmp 0x4127a5
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x4129c6
mov edx, str.Cant_set_timeouts
jmp 0x4129bb
push ecx
push ecx
lea ecx, [ebp - 0x144]
call fcn.0040d74d
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x4129c6
mov edx, str.Cant_open_session
lea ecx, [ebp - 0x134]
call fcn.004076fa
lea ecx, [ebp - 0x144]
call fcn.0040d4e2
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.0040f2bf
lea ecx, [ebp - 0x68]
call fcn.0040cf44
mov eax, edi
call fcn.00438b07
ret