Function at 0x1002a8f0
Capabilities:
Check http status code
Connect to http server
Create http request
Read data from internet
Receive data
Reference http user-agent string
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5874
call fcn.10033810
mov eax, dword [0x10042074]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x28]
push ebx
mov ebx, dword [ebp + 0x24]
push esi
mov esi, dword [ebp + 0x20]
push edi
push ebx
mov dword [ebp - 0x586c], eax
mov eax, dword [ebp + 0x2c]
push 0
push esi
mov dword [ebp - 0x5834], ecx
mov dword [ebp - 0x584c], esi
mov dword [ebp - 0x5840], ebx
mov dword [ebp - 0x5848], eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test esi, esi
je 0x1002b2c7
push ebx
call sub.mfc140.dll_Ordinal_265
push ebx
mov esi, eax
push 0
push esi
mov dword [ebp - 0x5830], esi
call sub.VCRUNTIME140.dll_memset
push 0x400
lea eax, [ebp - 0x102c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x100
lea eax, [ebp - 0x22c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x100
lea eax, [ebp - 0x32c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x1000
lea eax, [ebp - 0x282c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x40
lea eax, [ebp - 0x482c]
push 0x1000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x102c]
add esp, 0xc
sub edx, ecx
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1002a9d0
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x22c]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1002a9f0
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x32c]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1002aa10
mov ecx, dword [ebp + 0x18]
lea edx, [ebp - 0x282c]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1002aa30
mov ecx, dword [ebp + 0x1c]
lea edx, [ebp - 0x482c]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1002aa50
mov eax, dword [str.POST]
xor ebx, ebx
mov dword [ebp - 0xc], eax
xor edi, edi
mov al, byte [0x1003a470]
mov ecx, str.application_xml__text_html___
mov byte [ebp - 8], al
mov eax, dword [ebp - 0x5834]
push 0x100
push edi
mov dword [ebp - 0x583c], ebx
test byte [eax + 0xc], 2
mov eax, str.application_json__text_json___
mov dword [ebp - 0x585c], ebx
cmove eax, ecx
mov dword [ebp - 0x5858], ebx
mov dword [ebp - 0x5874], eax
lea eax, [ebp - 0x12c]
push eax
mov dword [ebp - 0x5844], ebx
mov dword [ebp - 0x5868], ebx
mov dword [ebp - 0x5864], ebx
mov dword [ebp - 0x5870], ebx
mov dword [ebp - 0x5838], 0x7530
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x5834]
add esp, 0xc
mov eax, dword [eax + 8]
test al, 1
je 0x1002ab0e
movups xmm0, xmmword [str.Content_Type:_application_x_www_form_urlencoded]
movups xmmword [ebp - 0x12c], xmm0
movups xmm0, xmmword [0x10039408]
movups xmmword [ebp - 0x11c], xmm0
movups xmm0, xmmword [0x10039418]
movups xmmword [ebp - 0x10c], xmm0
test al, 2
je 0x1002aba8
lea ecx, [ebp - 0x12c]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002ab20
sub ecx, edx
je 0x1002ab67
lea ecx, [ebp - 0x12c]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x1002ab32
mov eax, dword [str._application_json]
mov dword [ecx], eax
mov eax, dword [0x1003a4bc]
mov dword [ecx + 4], eax
mov eax, dword [0x1003a4c0]
mov dword [ecx + 8], eax
mov eax, dword [0x1003a4c4]
mov dword [ecx + 0xc], eax
mov ax, word [0x1003a4c8]
mov word [ecx + 0x10], ax
jmp 0x1002aba8
movups xmm0, xmmword [str.Content_Type:_application_json]
mov eax, dword [0x1003a4e4]
mov dword [ebp - 0x114], eax
mov ax, word [0x1003a4e8]
movups xmmword [ebp - 0x12c], xmm0
mov word [ebp - 0x110], ax
movq xmm0, qword [0x1003a4dc]
mov al, byte [0x1003a4ea]
movq qword [ebp - 0x11c], xmm0
mov byte [ebp - 0x10e], al
push 0x100
lea eax, [ebp - 0x62c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [ebp - 0x62c]
push eax
call fcn.1001c0c0
add esp, 0x10
xor ecx, ecx
nop dword [eax]
mov al, byte [ebp + ecx - 0x62c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x52d], al
test al, al
jne 0x1002abd0
lea eax, [ebp - 0x52c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strlwr]
lea eax, [ebp - 0x52c]
push eax
lea eax, [ebp - 0x42c]
push str.Accept_Language:__s
push eax
call fcn.1001a8c0
mov eax, dword [ebp + 0x34]
add esp, 0x10
mov dword [ebp - 0x5838], eax
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x282c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x182d], al
test al, al
jne 0x1002ac20
lea eax, [ebp - 0x182c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strupr]
push 4
lea eax, [ebp - 0x182c]
push str.HTTP
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0x10
test eax, eax
je 0x1002ac7a
lea eax, [ebp - 0x282c]
push eax
lea eax, [ebp - 0x142c]
push str.http:___s
push eax
call fcn.1001a8c0
add esp, 0xc
jmp 0x1002ac95
xor ecx, ecx
nop dword [eax]
mov al, byte [ebp + ecx - 0x282c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x142d], al
test al, al
jne 0x1002ac80
mov ecx, dword [ebp - 0x5834]
lea eax, [ebp - 0x5860]
push eax
lea eax, [ebp - 0x302c]
push eax
push 0
push 0
lea eax, [ebp - 0x382c]
push eax
lea eax, [ebp - 0x72c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x142c]
push eax
call fcn.1002d8b0
test eax, eax
je 0x1002b2ba
cmp byte [ebp - 0x102c], bl
je 0x1002ad06
push dword [ebp + 0xc]
lea eax, [ebp - 0x102c]
push eax
lea eax, [ebp - 0x82c]
push str.http:___s:_d
push eax
call fcn.1001a8c0
mov ecx, 3
add esp, 0x10
mov dword [ebp - 0x5848], ecx
jmp 0x1002ad0c
mov ecx, dword [ebp - 0x5848]
mov edx, dword [sym.imp.WININET.dll_InternetOpenA]
push 0
push 0
cmp ecx, 3
jne 0x1002ad25
lea eax, [ebp - 0x82c]
push eax
push ecx
jmp 0x1002ad28
push 0
push ecx
push str.Mozilla_5.0__Windows_NT_10.0__Trident_7.0__rv:11.0__like_Gecko
call edx
mov dword [ebp - 0x5850], eax
test eax, eax
je 0x1002b2b4
push 0
push 0
push 3
push 0
push 0
push dword [ebp - 0x5860]
lea ecx, [ebp - 0x72c]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x5854], eax
test eax, eax
je 0x1002b229
lea eax, [ebp - 0x302c]
push eax
lea eax, [ebp - 0x382c]
push eax
lea eax, [ebp - 0x582c]
push str._s_s
push eax
call fcn.1001a8c0
lea eax, [ebp - 0x2c]
mov esi, str.https
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strlwr]
add esp, 0x14
nop word [eax + eax]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x1002adc0
test cl, cl
je 0x1002adbc
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x1002adc0
add eax, 2
add esi, 2
test cl, cl
jne 0x1002ada0
xor eax, eax
jmp 0x1002adc5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1002add5
cmp dword [ebp - 0x5860], 0x1bb
jne 0x1002addf
mov eax, dword [ebp + 0x30]
or eax, 0x803000
jmp 0x1002ade2
mov eax, dword [ebp + 0x30]
push 0
or eax, 0x400000
push eax
mov dword [ebp + 0x30], eax
lea eax, [ebp - 0x5874]
push eax
push 0
push 0
lea eax, [ebp - 0x582c]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x5854]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov ebx, eax
test ebx, ebx
je 0x1002b229
lea ecx, [ebp - 0x42c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002ae22
push 0x20000000
sub ecx, edx
lea eax, [ebp - 0x42c]
push ecx
push eax
push ebx
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
mov ecx, dword [ebp - 0x5834]
push ebx
call fcn.10025910
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionA]
lea eax, [ebp - 0x5838]
push 4
push eax
push 2
push ebx
call esi
push 4
lea eax, [ebp - 0x5838]
push eax
push 5
push ebx
call esi
push 4
lea eax, [ebp - 0x5838]
push eax
push 6
push ebx
call esi
push 4
lea eax, [ebp - 0x5838]
push eax
push 7
push ebx
call esi
push 4
lea eax, [ebp - 0x5838]
push eax
push 8
push ebx
call esi
cmp byte [ebp - 0x22c], 0
je 0x1002aec9
lea ecx, [ebp - 0x22c]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002aeb0
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x2b
push ebx
call esi
cmp byte [ebp - 0x32c], 0
je 0x1002af00
lea ecx, [ebp - 0x32c]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002aee0
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x32c]
push eax
push 0x2c
push ebx
call esi
nop dword [eax]
lea edx, [ebp - 0x482c]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x1002af10
lea eax, [ebp - 0x12c]
sub edx, ecx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002af22
push edx
lea ecx, [ebp - 0x482c]
sub eax, esi
push ecx
push eax
lea eax, [ebp - 0x12c]
push eax
push ebx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov edi, eax
test edi, edi
jne 0x1002b092
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x2f0d
je 0x1002af6c
cmp esi, 0x2f19
je 0x1002af6c
cmp esi, 0x2f07
jne 0x1002afae
lea eax, [ebp - 0x583c]
mov dword [ebp - 0x583c], 4
push eax
lea eax, [ebp - 0x585c]
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetQueryOptionA]
or dword [ebp - 0x585c], 0x180
lea eax, [ebp - 0x585c]
push 4
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionA]
jmp 0x1002af00
cmp esi, 0x2ee2
je 0x1002b053
mov eax, dword [ebp - 0x5848]
test eax, eax
jne 0x1002afed
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
push dword [ebp - 0x5854]
call esi
push dword [ebp - 0x5850]
call esi
mov ecx, 1
mov dword [ebp - 0x5848], ecx
jmp 0x1002ad0c
cmp eax, 3
jne 0x1002b018
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
push dword [ebp - 0x5854]
call esi
push dword [ebp - 0x5850]
call esi
xor ecx, ecx
mov dword [ebp - 0x5848], ecx
jmp 0x1002ad0c
mov eax, dword [ebp - 0x5830]
test eax, eax
je 0x1002b02b
push eax
call sub.mfc140.dll_Ordinal_266
add esp, 4
push dword [ebp - 0x5840]
mov ebx, dword [ebp - 0x584c]
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push esi
push str.WinINet_GetLastError_:__d
push ebx
call fcn.1001a8c0
add esp, 0x18
jmp 0x1002b2c7
mov eax, dword [ebp - 0x5830]
test eax, eax
je 0x1002b066
push eax
call sub.mfc140.dll_Ordinal_266
add esp, 4
push dword [ebp - 0x5840]
mov ebx, dword [ebp - 0x584c]
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push 0x2ee2
push str.WinINet_GetLastError_:__d
push ebx
call fcn.1001a8c0
add esp, 0x18
jmp 0x1002b2c7
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea eax, [ebp - 0x583c]
push 0
push eax
lea eax, [ebp - 0x5868]
mov dword [ebp - 0x583c], 4
push eax
push 0x20000013
push ebx
call esi
mov ecx, dword [ebp - 0x586c]
mov edi, eax
mov eax, dword [ebp - 0x5868]
mov dword [ecx], eax
test edi, edi
je 0x1002b229
test eax, eax
je 0x1002b0e1
cmp eax, 0xc8
je 0x1002b0e1
xor edi, edi
jmp 0x1002b11a
push 0
lea eax, [ebp - 0x583c]
mov dword [ebp - 0x583c], 4
push eax
lea eax, [ebp - 0x5864]
push eax
push 5
push ebx
call esi
mov edi, eax
mov dword [ebp - 0x5834], edi
test edi, edi
jne 0x1002b120
cmp dword [ebp - 0x5864], edi
mov eax, 1
cmove edi, eax
mov dword [ebp - 0x5834], edi
push 0x400
lea eax, [ebp - 0xc2c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [sym.imp.WININET.dll_InternetReadFile]
lea eax, [ebp - 0x5844]
add esp, 0xc
push eax
push 0x400
lea eax, [ebp - 0xc2c]
push eax
push ebx
call esi
test eax, eax
je 0x1002b1e3
mov edi, dword [ebp - 0x5830]
mov ecx, dword [ebp - 0x5844]
test ecx, ecx
je 0x1002b1dd
mov edx, dword [ebp - 0x5858]
lea eax, [ecx + edx]
cmp eax, dword [ebp - 0x5840]
jb 0x1002b18a
mov ecx, dword [ebp - 0x5840]
sub ecx, edx
dec ecx
mov dword [ebp - 0x5844], ecx
push ecx
lea eax, [ebp - 0xc2c]
push eax
lea eax, [edx + edi]
push eax
call sub.VCRUNTIME140.dll_memcpy
push 0x400
lea eax, [ebp - 0xc2c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x5858]
add esp, 0x18
add eax, dword [ebp - 0x5844]
mov dword [ebp - 0x5858], eax
lea eax, [ebp - 0x5844]
push eax
push 0x400
lea eax, [ebp - 0xc2c]
push eax
push ebx
call esi
test eax, eax
jne 0x1002b160
mov edi, dword [ebp - 0x5834]
cmp dword [ebp - 0x5864], 0
jbe 0x1002b229
cmp dword [ebp - 0x5858], 0
ja 0x1002b229
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x5840]
mov esi, eax
push 0
push dword [ebp - 0x5830]
call sub.VCRUNTIME140.dll_memset
push esi
mov esi, dword [ebp - 0x5830]
push str.GetLastError_:__d
push esi
call fcn.1001a8c0
add esp, 0x18
xor edi, edi
jmp 0x1002b22f
mov esi, dword [ebp - 0x5830]
push ebx
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebx
push dword [ebp - 0x5854]
call ebx
push dword [ebp - 0x5850]
call ebx
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002b250
mov eax, dword [ebp - 0x5840]
sub ecx, edx
cmp ecx, eax
jae 0x1002b27f
mov edx, dword [ebp - 0x584c]
mov ecx, esi
sub edx, esi
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x1002b270
jmp 0x1002b292
mov ebx, dword [ebp - 0x584c]
dec eax
push eax
push esi
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
test esi, esi
je 0x1002b29f
push esi
call sub.mfc140.dll_Ordinal_266
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100337f6
mov esp, ebp
pop ebp
ret 0x30
mov esi, dword [ebp - 0x5830]
test esi, esi
je 0x1002b2c7
push esi
call sub.mfc140.dll_Ordinal_266
add esp, 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100337f6
mov esp, ebp
pop ebp
ret 0x30