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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf0
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
add ecx, eax
lea ebx, [esp + 0x48]
mov dword [ebx], 1
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov word [ebx + 0xc], 0
lea esi, [esp + 0xd4]
push ebx
push esi
call fcn.10001030
add esp, 8
mov esi, dword [esi + 4]
sub esp, 0x14
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov dword [esp + 0x18], eax
test eax, eax
je 0x1000353b
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edi
test edi, edi
mov dword [esp + 0x1c], esi
je 0x10003565
js 0x10003fea
mov al, byte [0x100609d9]
push 1
push edi
call fcn.100054d0
add esp, 8
test eax, eax
je 0x10003fee
mov esi, eax
jmp 0x10003568
call fcn.10012f30
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
push ebx
call fcn.10001000
add esp, 4
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
xor ebx, ebx
jmp 0x10003f90
xor esi, esi
inc esi
push edi
push ebx
push esi
call fcn.10034390
add esp, 0xc
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
push 3
push str.:__src_net.rs
push edi
push ebx
lea ebx, [esp + 0x58]
push ebx
call fcn.10024110
add esp, 0x14
lea edi, [esp + 0x28]
mov ecx, edi
mov edx, ebx
call fcn.1000332f
cmp dword [edi], 0
je 0x100035ed
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x1000368f
mov eax, dword [esp + 0x8c]
cmp ebx, eax
jae 0x100036a0
mov ecx, dword [esp + 0x10]
cmp byte [ecx + ebx], 0xbf
jg 0x100036a6
push 0x1004a7a4
push ebx
push 0
push eax
push dword [esp + 0x20]
call fcn.10049a20
lea eax, [esp + 0x88]
lea esi, [esp + 0x28]
mov dword [esi], eax
mov dword [esi + 4], 0x100087b0
mov dword [esp + 0x48], 0x1004a7c4
xor eax, eax
inc eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], eax
lea edi, [esp + 0x98]
push ebx
push edi
call fcn.1001dbd0
add esp, 8
lea ebx, [esp + 0x38]
push ebx
call fcn.10001352
add esp, 4
push ebx
call fcn.1000556f
add esp, 4
movsd xmm0, qword [edi]
movsd qword [ebx], xmm0
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
push 3
push str.:__src_net.rs
push eax
push dword [ebx + 4]
lea edi, [esp + 0x58]
push edi
call fcn.10024110
add esp, 0x14
mov ecx, esi
mov edx, edi
call fcn.1000332f
mov ebx, dword [esi]
test ebx, ebx
je 0x10003680
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], 0x1004a7b4
mov eax, 5
jmp 0x100036a8
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
xor eax, eax
mov ebx, 3
jmp 0x100036b5
jne 0x100035db
mov eax, ebx
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
add ebx, 3
je 0x100036d2
cmp esi, ebx
mov dword [esp + 0x14], eax
jbe 0x100036c8
cmp byte [ecx + ebx], 0xbf
jg 0x100036d8
jmp 0x10003fe1
jne 0x10003fe1
mov ebx, esi
jmp 0x100036d8
mov dword [esp + 0x14], eax
xor ebx, ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
sub esi, ebx
add ebx, ecx
mov ecx, ebx
mov edx, esi
push 0x3a
call fcn.10002f40
add esp, 4
test eax, eax
mov dword [esp + 4], ebx
je 0x1000373f
mov edi, edx
mov dword [esp + 0xc], edx
mov ecx, ebx
mov edx, esi
push 0x2f
call fcn.10002f40
add esp, 4
test eax, eax
je 0x10003776
test edi, edi
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0xc]
je 0x1000382e
cmp edi, esi
jae 0x10003828
cmp byte [ecx + eax], 0xbf
jg 0x1000382e
push 0x1004a7f0
push eax
jmp 0x1000402d
mov eax, dword [esp + 0x14]
cmp eax, 5
jbe 0x100037ae
push 5
push 0x1004a7b4
push eax
push dword [esp + 0x1c]
lea ebx, [esp + 0x58]
push ebx
call fcn.10024110
add esp, 0x14
lea edi, [esp + 0x28]
mov ecx, edi
mov edx, ebx
call fcn.1000332f
cmp dword [edi], 0
setne al
jmp 0x100037c2
test edi, edi
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
je 0x10003794
cmp edi, esi
jae 0x100038c3
cmp byte [ecx + ebx], 0xbf
jle 0x10004027
inc edi
cmp edi, esi
jae 0x100038b9
cmp byte [ecx + edi], 0xbf
jle 0x1000401c
mov eax, edi
jmp 0x100038d6
push eax
push dword [esp + 0x14]
push 5
push 0x1004a7b4
call fcn.10005e60
add esp, 0x10
test al, al
mov eax, 0x1bb
mov ecx, 0x50
cmovne ecx, eax
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 4]
mov ecx, edi
mov edx, esi
push 0x2f
call fcn.10002f40
add esp, 4
test eax, eax
je 0x10003812
mov ebx, edx
mov eax, edi
test edx, edx
je 0x10003916
cmp esi, ebx
jbe 0x10003908
cmp byte [edi + ebx], 0xbf
jle 0x10004036
add edi, ebx
mov eax, edi
jmp 0x10003916
mov ebx, esi
xor eax, eax
inc eax
mov dword [esp + 0x24], 0x1004a7ec
mov dword [esp + 8], eax
jmp 0x10003920
jne 0x10003734
test edx, edx
je 0x1000384a
cmp esi, edx
jbe 0x10003848
cmp byte [ecx + edx], 0xbf
jg 0x1000384a
push 0x1004a800
push esi
push edx
jmp 0x1000402f
jne 0x1000383c
inc edi
mov eax, edx
sub eax, edi
jb 0x10003880
test edi, edi
je 0x10003863
cmp edi, esi
jae 0x10003861
cmp byte [ecx + edi], 0xc0
jge 0x10003863
jmp 0x10003880
jne 0x10003880
mov ebx, ecx
add ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, ebx
test edx, edx
je 0x1000388e
cmp esi, edx
jbe 0x1000388c
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0xbf
mov ecx, ebx
jg 0x1000388e
push 0x1004a810
push edx
push edi
jmp 0x1000402f
jne 0x10003880
sub esi, edx
mov dword [esp + 8], esi
add ecx, edi
push eax
push ecx
call fcn.10025360
add esp, 8
mov ecx, eax
shr ecx, 0x10
test al, 1
mov eax, 0x50
cmove eax, ecx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0xc]
jmp 0x10003920
jne 0x1000401c
mov eax, esi
jmp 0x100038d6
jne 0x10004027
xor eax, eax
mov edi, esi
mov ebx, esi
inc edi
jne 0x10003795
sub esi, eax
add ecx, eax
push esi
push ecx
call fcn.10025360
add esp, 8
mov ecx, eax
shr ecx, 0x10
test al, 1
mov eax, 0x50
cmove eax, ecx
mov dword [esp + 0x20], eax
xor eax, eax
inc eax
mov dword [esp + 8], eax
mov dword [esp + 0x24], 0x1004a7ec
jmp 0x10003920
jne 0x10004036
mov eax, dword [esp + 0xc]
add eax, dword [esp + 8]
mov dword [esp + 0x24], eax
sub esi, ebx
mov dword [esp + 8], esi
xor eax, eax
inc eax
mov esi, eax
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1000394b
js 0x10003ff4
mov al, byte [0x100609d9]
push 1
push edi
call fcn.100054d0
add esp, 8
test eax, eax
je 0x10003ff8
push edi
push dword [esp + 0x14]
mov dword [esp + 0x18], eax
push eax
call fcn.10034390
add esp, 0xc
mov eax, esi
test ebx, ebx
je 0x10003981
js 0x10004001
mov al, byte [0x100609d9]
push 1
push ebx
call fcn.100054d0
add esp, 8
test eax, eax
je 0x10004005
mov dword [esp + 0xc], ebx
push ebx
push dword [esp + 8]
mov dword [esp + 0xc], eax
push eax
call fcn.10034390
add esp, 0xc
cmp dword [esp + 8], 0
je 0x100039c1
js 0x1000400b
mov al, byte [0x100609d9]
push 1
push dword [esp + 0xc]
call fcn.100054d0
add esp, 8
test eax, eax
je 0x1000400f
mov esi, eax
mov ebx, dword [esp + 8]
push ebx
push dword [esp + 0x28]
mov dword [esp + 0xb0], esi
push esi
call fcn.10034390
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov esi, dword [esp + 0xc]
mov dword [esp + 0xb8], esi
mov edi, dword [esp + 4]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], esi
mov eax, dword [esp + 0x20]
mov word [esp + 0xd0], ax
mov dword [esp + 0xc4], ebx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ebx
lea ebx, [esp + 0x38]
push ebx
call fcn.10001352
add esp, 4
push ebx
call fcn.1000556f
add esp, 4
add esi, edi
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], esi
mov word [esp + 0x54], 0
lea edi, [esp + 0xe0]
lea ebx, [esp + 0x48]
push ebx
push edi
call fcn.10001030
add esp, 8
mov ecx, dword [edi + 4]
movzx eax, word [esp + 0x20]
push 0
push eax
mov dword [esp + 0x14], ecx
push ecx
mov edi, dword [esp + 0x24]
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
test eax, eax
je 0x10003b9a
mov esi, eax
xor ebx, ebx
inc ebx
mov dword [esp + 0x48], ebx
mov eax, 0x1004a840
mov dword [esp + 0x4c], eax
lea eax, [0x1004a843]
mov dword [esp + 0x50], eax
xor edi, edi
mov word [esp + 0x54], di
lea ecx, [esp + 0x88]
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.10001030
add esp, 8
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
add ecx, eax
mov dword [esp + 0x48], ebx
lea ebx, [esp + 0x48]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov word [esp + 0x54], di
push ebx
lea eax, [esp + 0x3c]
push eax
call fcn.10001030
add esp, 8
push 5
push 0x1004a7b4
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.10005e60
add esp, 0x10
lea ecx, [esp + 0x88]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
movzx eax, al
shl eax, 0x17
or eax, 0x80
push eax
push edi
push edi
push edi
mov dword [esp + 0x24], edx
push edx
mov dword [esp + 0x1c], ecx
push ecx
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
test eax, eax
je 0x10003bd2
mov edi, eax
mov dword [esp + 4], esi
mov ecx, dword [ebp + 0x1c]
cmp dword [ecx], 0x80000000
sete bl
jne 0x10003c10
sub esp, 0x1c
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
mov esi, eax
jmp 0x10003cbc
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
call fcn.10012f30
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
push ebx
call fcn.10001000
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
xor ebx, ebx
mov esi, dword [esp + 0x1c]
jmp 0x10003f68
mov eax, esi
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push eax
call esi
push dword [esp + 0x18]
call esi
call fcn.10012f30
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
push ebx
call fcn.10001000
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
mov bl, 1
jmp 0x10003f2c
mov eax, dword [ecx + 8]
mov dword [esp + 0xa0], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0x98], xmm0
mov ecx, dword [esp + 0x9c]
add eax, ecx
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov word [esp + 0x54], 0
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.10001030
add esp, 8
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
sub esp, 0x1c
xorps xmm0, xmm0
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
mov esi, eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10003c9c
add eax, eax
push 2
push eax
push dword [esp + 0x28]
call fcn.100054e0
add esp, 0xc
lea eax, [esp + 0x98]
push eax
call fcn.10001352
add esp, 4
lea eax, [esp + 0x98]
push eax
call fcn.1000556f
add esp, 4
test esi, esi
je 0x10003d8d
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x10003d8d
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x34]
mov dword [ecx], eax
push ecx
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
je 0x10003dd1
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10003e15
push eax
xor esi, esi
push esi
lea eax, [esp + 0x50]
push eax
call fcn.100015e3
add esp, 0xc
mov dword [esp + 0x94], esi
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x38]
push dword [esp + 0x54]
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
je 0x10003ec1
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jb 0x10003fd5
push eax
push dword [esp + 0x50]
lea eax, [esp + 0x30]
push eax
call fcn.10007b74
add esp, 0xc
lea esi, [esp + 0x48]
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
mov dword [esp + 0x34], 0
lea eax, [esp + 0x34]
push eax
jmp 0x10003cee
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push edi
call esi
push dword [esp + 4]
call esi
push dword [esp + 0x18]
call esi
call fcn.10012f30
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
push eax
call fcn.10001000
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
jmp 0x10003f2c
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push edi
call esi
push dword [esp + 4]
call esi
push dword [esp + 0x18]
call esi
call fcn.10012f30
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
push eax
call fcn.10001000
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
jmp 0x10003f16
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push edi
call esi
push dword [esp + 4]
call esi
push dword [esp + 0x18]
call esi
mov eax, dword [esp + 0x30]
mov edi, dword [ebp + 8]
mov dword [edi + 8], eax
movsd xmm0, qword [esp + 0x28]
movsd qword [edi], xmm0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10003e57
add eax, eax
push 2
push eax
push dword [esp + 0x1c]
call fcn.100054e0
add esp, 0xc
mov eax, dword [esp + 0x88]
test eax, eax
mov esi, dword [esp + 0x1c]
je 0x10003e77
add eax, eax
push 2
push eax
push dword [esp + 0x10]
call fcn.100054e0
add esp, 0xc
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x10003e93
add eax, eax
push 2
push eax
push dword [esp + 0x14]
call fcn.100054e0
add esp, 0xc
lea ecx, [esp + 0xac]
call fcn.10002ccb
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x10003fcb
add eax, eax
push 2
push eax
push esi
call fcn.100054e0
add esp, 0xc
jmp 0x10003fcb
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push edi
call esi
push dword [esp + 4]
call esi
push dword [esp + 0x18]
call esi
call fcn.10012f30
lea ecx, [esp + 0x98]
mov byte [ecx], 0
mov dword [ecx + 4], eax
push ecx
call fcn.10001000
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], 0x80000000
lea esi, [esp + 0x48]
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
lea esi, [esp + 0x28]
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10003f49
add eax, eax
push 2
push eax
push dword [esp + 0x1c]
call fcn.100054e0
add esp, 0xc
mov eax, dword [esp + 0x88]
test eax, eax
je 0x10003f65
add eax, eax
push 2
push eax
push dword [esp + 0x10]
call fcn.100054e0
add esp, 0xc
xor bl, 1
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x10003f84
add eax, eax
push 2
push eax
push dword [esp + 0x14]
call fcn.100054e0
add esp, 0xc
lea ecx, [esp + 0xac]
call fcn.10002ccb
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x10003fa9
add eax, eax
push 2
push eax
push esi
call fcn.100054e0
add esp, 0xc
mov esi, dword [ebp + 0x1c]
cmp dword [esi], 0x80000000
sete al
or bl, al
jne 0x10003fcb
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x1004a844
push ecx
push eax
call fcn.10049950
push 0x1004a7cc
push esi
push ebx
jmp 0x1000402f
xor eax, eax
jmp 0x10003ff1
xor eax, eax
inc eax
push edi
jmp 0x10004016
xor eax, eax
jmp 0x10003ffb
xor eax, eax
inc eax
push dword [esp + 0x14]
jmp 0x10004016
xor eax, eax
jmp 0x10004008
xor eax, eax
inc eax
push ebx
jmp 0x10004016
xor eax, eax
jmp 0x10004012
xor eax, eax
inc eax
push dword [esp + 8]
push eax
call fcn.10049490
push 0x1004a830
push esi
jmp 0x10003886
push 0x1004a820
push ebx
push 0
push esi
push ecx
call fcn.10049a20
push 0x1004a7dc
push esi
push ebx
push esi
push edi
call fcn.10049a20