Function at 0x406fc0
Capabilities:
Check http status code
Connect to http server
Create http request
Parse url
Query remote server for available data
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb80
mov eax, dword [0x431014]
xor eax, ebp
mov dword [esp + 0xb78], eax
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
call edi
mov esi, eax
call edi
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
lea edi, [esp + 0xf8]
mov dword [esp], edi
mov dword [esp + 0xc], str.___________________________
call fcn.004063d0
add esp, 0x18
xor eax, eax
mov word [edi + 0x56], ax
mov dword [esp + 0x84], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 7
mov word [esp + 0x84], ax
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov esi, eax
cmp eax, 7
ja 0x4087c3
lea eax, [esp + 0x84]
mov dword [eax + 0x10], esi
mov ecx, esi
add ecx, esi
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [esp + esi*2 + 0x84], 0
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], 7
mov word [esp + 0x6c], di
push 0x60
call fcn.0041c63c
add esp, 4
mov esi, eax
mov dword [esp + 0x7c], 0x2c
mov dword [esp + 0x80], 0x2f
push 0x58
push str.Content_Type:_multipart_form_data__boundary
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [esi + 0x58], di
mov dword [esp + 0x6c], esi
mov edi, dword [esp + 0x94]
cmp dword [esp + 0x98], 8
jb 0x4070d7
mov eax, dword [esp + 0x84]
jmp 0x4070de
lea eax, [esp + 0x84]
cmp edi, 3
ja 0x4087f0
mov ecx, esi
add ecx, 0x58
lea edx, [edi + 0x2c]
mov dword [esp + 0x7c], edx
lea edx, [edi + edi]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov word [esi + edi*2 + 0x58], 0
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], 0xf
mov byte [esp + 0x54], 0
lea esi, [esp + 0xb08]
lea edx, [esp + 0x84]
mov ecx, esi
call fcn.00408f60
cmp dword [esi + 0x10], ebx
je 0x4085ff
cmp dword [esp + 0x68], 0x10
jb 0x40714a
mov eax, dword [esp + 0x54]
jmp 0x40714e
lea eax, [esp + 0x54]
mov dword [esp + 0x64], 0
mov byte [eax], 0
mov ebx, dword [esp + 0xb18]
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 0x7ffffffe
je 0x408f3a
mov ecx, dword [esp + 0xb08]
mov eax, dword [esp + 0xb1c]
mov dword [esp + 0x8e0], 0
lea edx, [ebx + 2]
cmp edx, 0x10
jb 0x4071d6
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, edx
or eax, 0xf
cmp eax, 0x17
mov edi, 0x16
cmovae edi, eax
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
cmp edi, 0xfff
jb 0x4071e4
lea eax, [edi + 0x24]
push eax
call fcn.0041c63c
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4071f2
mov edi, 0xf
lea esi, [esp + 0x8e0]
jmp 0x407205
lea eax, [edi + 1]
push eax
call fcn.0041c63c
add esp, 4
mov esi, eax
mov dword [esp + 0x8e0], esi
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
cmp eax, 0x10
lea eax, [esp + 0xb08]
cmovb ecx, eax
mov dword [esp + 0x8f0], edx
mov dword [esp + 0x8f4], edi
mov word [esi], 0x2d2d
lea eax, [esi + 2]
push ebx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + ebx + 2], 0
mov ecx, dword [esp + 0x8f0]
mov edx, dword [esp + 0x8f4]
mov eax, edx
sub eax, ecx
cmp eax, 2
jae 0x407286
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x8f0]
call fcn.00403910
lea ebx, [esp + 0xe0]
jmp 0x4072b3
lea esi, [ecx + 2]
lea eax, [esp + 0x8e0]
mov dword [eax + 0x10], esi
mov esi, eax
cmp edx, 0x10
lea ebx, [esp + 0xe0]
jb 0x4072a8
mov esi, dword [esp + 0x8e0]
mov word [esi + ecx], 0xa0d
mov byte [esi + ecx + 2], 0
xor ecx, ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xf0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xe0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0xf4], 0x10
jb 0x407308
mov ebx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov esi, edx
sub esi, ecx
cmp esi, eax
jae 0x40733c
sub esp, 0x10
mov cl, byte [esp + 0xb48]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x407363
lea esi, [ecx + eax]
mov dword [esp + 0x64], esi
cmp edx, 0x10
jb 0x40734e
mov edi, dword [esp + 0x54]
jmp 0x407352
lea edi, [esp + 0x54]
add ecx, edi
push eax
push ebx
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi], 0
mov eax, dword [esp + 0xf4]
cmp eax, 0x10
jb 0x4073a3
mov ecx, dword [esp + 0xe0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407399
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
mov eax, dword [esp + 0x8f4]
cmp eax, 0x10
jb 0x407401
mov ecx, dword [esp + 0x8e0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x4073f7
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov ecx, eax
sub ecx, esi
cmp ecx, 0x45
jae 0x40743f
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 0x45
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], str.Content_Disposition:_form_data__name_extra___filename_extra.json__r_n
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x40746d
lea ecx, [esi + 0x45]
mov dword [esp + 0x64], ecx
cmp eax, 0x10
jb 0x407451
mov edi, dword [esp + 0x54]
jmp 0x407455
lea edi, [esp + 0x54]
lea eax, [edi + esi]
push 0x45
push str.Content_Disposition:_form_data__name_extra___filename_extra.json__r_n
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi + 0x45], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 0x20
jae 0x4074ab
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 0x20
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], str.Content_Type:_application_json_r_n
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x4074dd
lea edx, [eax + 0x20]
mov dword [esp + 0x64], edx
cmp ecx, 0x10
jb 0x4074bd
mov ecx, dword [esp + 0x54]
jmp 0x4074c1
lea ecx, [esp + 0x54]
movups xmm0, xmmword [0x42d821]
movups xmmword [ecx + eax + 0x10], xmm0
movups xmm0, xmmword [str.Content_Type:_application_json_r_n]
movups xmmword [ecx + eax], xmm0
mov byte [ecx + eax + 0x20], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x40751e
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x40753f
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
cmp ecx, 0x10
jb 0x407530
mov ecx, dword [esp + 0x54]
jmp 0x407534
lea ecx, [esp + 0x54]
mov word [ecx + eax], 0xa0d
mov byte [ecx + eax + 2], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4075a9
cmp dword [esi + 0x14], 0x10
jb 0x40754e
mov esi, dword [esi]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov edi, edx
sub edi, ecx
cmp edi, eax
jae 0x407582
sub esp, 0x10
mov cl, byte [esp + 0xf0]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x4075a9
lea edi, [ecx + eax]
mov dword [esp + 0x64], edi
cmp edx, 0x10
jb 0x407594
mov ebx, dword [esp + 0x54]
jmp 0x407598
lea ebx, [esp + 0x54]
add ecx, ebx
push eax
push esi
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x4075e7
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x407608
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
cmp ecx, 0x10
jb 0x4075f9
mov ecx, dword [esp + 0x54]
jmp 0x4075fd
lea ecx, [esp + 0x54]
mov word [ecx + eax], 0xa0d
mov byte [ecx + eax + 2], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov edx, dword [eax]
cmp edx, eax
je 0x408352
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xb18]
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 0x7ffffffe
je 0x408f3a
mov ecx, dword [esp + 0xb08]
mov eax, dword [esp + 0xb1c]
mov dword [esp + 0x8e0], 0
lea edx, [ebx + 2]
mov edi, 0xf
lea esi, [esp + 0x8e0]
cmp edx, 0x10
jb 0x4076c5
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov edi, edx
or edi, 0xf
cmp edi, 0x17
mov eax, 0x16
cmovb edi, eax
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
cmp edi, 0xfff
jb 0x4076a4
lea eax, [edi + 0x24]
push eax
call fcn.0041c63c
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4076b2
lea eax, [edi + 1]
push eax
call fcn.0041c63c
add esp, 4
mov esi, eax
mov dword [esp + 0x8e0], esi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
lea eax, [esp + 0xb08]
cmovb ecx, eax
mov dword [esp + 0x8f0], edx
mov dword [esp + 0x8f4], edi
mov word [esi], 0x2d2d
lea eax, [esi + 2]
push ebx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + ebx + 2], 0
mov eax, dword [esp + 0x8f0]
mov ecx, dword [esp + 0x8f4]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x407743
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x8f0]
call fcn.00403910
mov edi, dword [esp + 4]
jmp 0x407776
lea edx, [eax + 2]
mov dword [esp + 0x8f0], edx
lea edx, [esp + 0x8e0]
cmp ecx, 0x10
mov edi, dword [esp + 4]
jb 0x407764
mov edx, dword [esp + 0x8e0]
mov word [edx + eax], 0xa0d
mov byte [edx + eax + 2], 0
lea eax, [esp + 0x8e0]
xor ecx, ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xf0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xe0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0xf4], 0x10
lea ecx, [esp + 0xe0]
jb 0x4077d2
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov esi, ebx
sub esi, edx
cmp esi, eax
jae 0x407806
sub esp, 0x10
mov dl, byte [esp + 0xb48]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x40782f
lea esi, [edx + eax]
mov dword [esp + 0x64], esi
lea edi, [esp + 0x54]
cmp ebx, 0x10
jb 0x40781a
mov edi, dword [esp + 0x54]
add edx, edi
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi], 0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xf4]
cmp eax, 0x10
jb 0x40786f
mov ecx, dword [esp + 0xe0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407865
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
mov eax, dword [esp + 0x8f4]
cmp eax, 0x10
jb 0x4078cd
mov ecx, dword [esp + 0x8e0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x4078c3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
lea edx, [edi + 0x10]
lea ecx, [esp + 0xb38]
call fcn.00408f60
cmp dword [esp + 0xb48], 0
je 0x407949
lea esi, [edi + 0x28]
lea ecx, [esp + 0xa4]
mov edx, esi
call fcn.00408f60
cmp dword [esp + 0xb4], 0
jne 0x4079ca
xor ebx, ebx
mov eax, dword [esp + 0xb8]
cmp eax, 0x10
jb 0x40794b
mov ecx, dword [esp + 0xa4]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x40793d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
jmp 0x40794b
xor ebx, ebx
mov eax, dword [esp + 0xb4c]
cmp eax, 0x10
jb 0x40798b
mov ecx, dword [esp + 0xb38]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407981
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
test bl, bl
je 0x4083dd
mov ecx, dword [edi + 8]
cmp byte [ecx + 0xd], 0
je 0x4079ae
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x4079b8
cmp edi, dword [eax + 8]
mov edi, eax
je 0x40799c
jmp 0x4079b8
mov eax, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x4079ae
mov edx, eax
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx]
jne 0x407617
jmp 0x408352
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0xb48]
cmp esi, 0x7fffffda
jge 0x408f3a
mov ecx, dword [esp + 0xb38]
mov edx, dword [esp + 0xb4c]
mov dword [esp + 0xb20], 0
lea eax, [esi + 0x26]
mov edi, 0xf
lea ebx, [esp + 0xb20]
cmp eax, 0x10
jb 0x407a74
mov dword [esp + 0x14], edx
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
mov edi, eax
or edi, 0xf
cmp edi, 0x17
mov eax, 0x16
cmovb edi, eax
mov eax, 0x7fffffff
cmp edi, eax
cmovae edi, eax
cmp edi, 0xfff
jb 0x407a53
lea eax, [edi + 0x24]
push eax
call fcn.0041c63c
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x407a61
lea eax, [edi + 1]
push eax
call fcn.0041c63c
add esp, 4
mov ebx, eax
mov dword [esp + 0xb20], ebx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp edx, 0x10
mov dword [esp + 0xb30], eax
lea eax, [esp + 0xb38]
cmovb ecx, eax
mov dword [esp + 0xb34], edi
movsd xmm0, qword [0x42d7b3]
movsd qword [ebx + 0x1e], xmm0
movups xmm0, xmmword [0x42d7a5]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [str.Content_Disposition:_form_data__name_]
movups xmmword [ebx], xmm0
lea eax, [ebx + 0x26]
push esi
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + esi + 0x26], 0
mov eax, dword [esp + 0xb30]
mov ecx, dword [esp + 0xb34]
mov edx, ecx
sub edx, eax
cmp edx, 0xd
jae 0x407b0f
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 0xd
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], str.___filename_
lea ecx, [esp + 0xb30]
call fcn.00403910
mov edi, dword [esp + 4]
jmp 0x407b55
lea edx, [eax + 0xd]
mov dword [esp + 0xb30], edx
lea edx, [esp + 0xb20]
cmp ecx, 0x10
mov edi, dword [esp + 4]
jb 0x407b30
mov edx, dword [esp + 0xb20]
mov dword [edx + eax + 8], 0x3d656d61
mov dword [edx + eax + 4], 0x6e656c69
mov dword [edx + eax], 0x66203b22
mov word [edx + eax + 0xc], 0x22
lea eax, [esp + 0xb20]
xor ecx, ecx
mov dword [esp + 0xae0], ecx
mov dword [esp + 0xaf0], ecx
mov dword [esp + 0xaf4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xaf0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xae0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xb8], 0x10
lea ecx, [esp + 0xa4]
jb 0x407bb1
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xaf0]
mov ebx, dword [esp + 0xaf4]
mov esi, ebx
sub esi, edx
cmp esi, eax
jae 0x407bee
sub esp, 0x10
mov dl, byte [esp + 0xf0]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [esp + 0xaf0]
call fcn.00403910
jmp 0x407c27
lea esi, [edx + eax]
mov dword [esp + 0xaf0], esi
lea edi, [esp + 0xae0]
cmp ebx, 0x10
jb 0x407c0b
mov edi, dword [esp + 0xae0]
add edx, edi
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi], 0
lea eax, [esp + 0xae0]
mov edi, dword [esp + 4]
xor ecx, ecx
mov dword [esp + 0x8e0], ecx
mov dword [esp + 0x8f0], ecx
mov dword [esp + 0x8f4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x8f0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x8e0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0x8f0]
mov ecx, dword [esp + 0x8f4]
mov edx, ecx
sub edx, eax
cmp edx, 3
jae 0x407cab
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 3
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a2
lea ecx, [esp + 0x8f0]
call fcn.00403910
jmp 0x407cd6
lea edx, [eax + 3]
mov dword [esp + 0x8f0], edx
lea edx, [esp + 0x8e0]
cmp ecx, 0x10
jb 0x407cc8
mov edx, dword [esp + 0x8e0]
mov dword [edx + eax], 0xa0d22
lea eax, [esp + 0x8e0]
xor ecx, ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xf0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xe0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0xf4], 0x10
lea ecx, [esp + 0xe0]
jb 0x407d32
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov esi, ebx
sub esi, edx
cmp esi, eax
jae 0x407d63
sub esp, 0x10
mov dl, byte [esp + 0x4c]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x407d8c
lea esi, [edx + eax]
mov dword [esp + 0x64], esi
lea edi, [esp + 0x54]
cmp ebx, 0x10
jb 0x407d77
mov edi, dword [esp + 0x54]
add edx, edi
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi], 0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xf4]
cmp eax, 0x10
jb 0x407dcc
mov ecx, dword [esp + 0xe0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407dc2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
mov eax, dword [esp + 0x8f4]
cmp eax, 0x10
jb 0x407e2a
mov ecx, dword [esp + 0x8e0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407e20
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0x8f0], 0
mov dword [esp + 0x8f4], 0xf
mov byte [esp + 0x8e0], 0
mov eax, dword [esp + 0xaf4]
cmp eax, 0x10
jb 0x407e88
mov ecx, dword [esp + 0xae0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407e7e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0xaf0], 0
mov dword [esp + 0xaf4], 0xf
mov byte [esp + 0xae0], 0
mov eax, dword [esp + 0xb34]
cmp eax, 0x10
jb 0x407ee6
mov ecx, dword [esp + 0xb20]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407edc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ecx, edx
sub ecx, eax
cmp ecx, 0x28
jae 0x407f24
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 0x28
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], str.Content_Type:_application_octet_stream_r_n
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x407f62
lea ecx, [eax + 0x28]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x54]
cmp edx, 0x10
jb 0x407f38
mov ecx, dword [esp + 0x54]
movsd xmm0, qword [0x42d852]
movsd qword [ecx + eax + 0x20], xmm0
movups xmm0, xmmword [0x42d842]
movups xmmword [ecx + eax + 0x10], xmm0
movups xmm0, xmmword [str.Content_Type:_application_octet_stream_r_n]
movups xmmword [ecx + eax], xmm0
mov byte [ecx + eax + 0x28], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x407fa0
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x407fbf
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
lea edx, [esp + 0x54]
cmp ecx, 0x10
jb 0x407fb4
mov edx, dword [esp + 0x54]
mov word [edx + eax], 0xa0d
mov byte [edx + eax + 2], 0
mov dword [esp + 0xe0], 0x42b150
lea ecx, [esp + 0x150]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::ios_base::constructor_void_]
mov dword [esp + 0x150], 0x42b15c
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov ebx, 0x42b158
mov dword [esp + eax + 0xe0], ebx
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax + 0xdc], ecx
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], 0x42b160
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x18]
mov dword [esp + eax + 0xdc], ecx
xor edx, edx
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 4]
lea eax, [esp + 0xe0]
add ecx, eax
mov dword [esp + 8], 0
push edx
lea esi, [esp + 0xf4]
push esi
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::init_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], ebx
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax + 0xdc], ecx
mov ecx, esi
call fcn.0041edf0
cmp dword [edi + 0x3c], 8
mov eax, dword [esp + 0xc]
jb 0x4080a8
mov eax, dword [edi + 0x28]
lea ecx, [esp + 0xe0]
push 0x40
push 0x20
push eax
call fcn.0041edb0
mov esi, 0
mov ebx, 0
xor eax, eax
cmp dword [esp + 0x13c], eax
je 0x4081df
xor eax, eax
lea esi, [esp + 0xe0]
mov ecx, esi
push 2
push eax
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int_]
mov ecx, esi
lea eax, [esp + 0x8e0]
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____thiscall_std::basic_istream_char__struct_std::char_traits_char__::tellg_void_]
xor eax, eax
mov ecx, dword [esp + 0x8e8]
add ecx, dword [esp + 0x8e0]
mov edx, dword [esp + 0x8ec]
adc edx, dword [esp + 0x8e4]
sete bl
mov esi, 0
jne 0x4081a9
test ecx, ecx
mov dword [esp + 8], edx
jne 0x408140
mov eax, ecx
or eax, edx
mov eax, 0
mov dword [esp + 0xc], 0
jne 0x408176
jmp 0x4081a9
js 0x408f3f
cmp ecx, 0x1000
jae 0x408336
push ecx
mov esi, ecx
call fcn.0041c63c
add esp, 4
mov edi, eax
push esi
push 0
push edi
call sub.VCRUNTIME140.dll_memset
mov eax, edi
add esp, 0xc
lea ecx, [edi + esi]
mov dword [esp + 0xc], ecx
mov ecx, esi
mov dword [esp + 0x10], ecx
mov esi, eax
lea edi, [esp + 0xe0]
mov ecx, edi
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int_]
mov ecx, edi
mov edi, dword [esp + 4]
push dword [esp + 8]
push dword [esp + 0x14]
push esi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::read_char___long_long___int64__]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
lea ecx, [esp + 0xf0]
call fcn.0041fa30
test eax, eax
jne 0x4081df
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [esp + eax]
add ecx, 0xe0
mov eax, dword [ecx + 0xc]
or eax, 2
push 0
push eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], 0x42b158
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esp + eax + 0xdc], ecx
lea ecx, [esp + 0xf0]
call fcn.0041f9e0
lea ecx, [esp + 0x150]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
test bl, bl
mov ecx, dword [esp + 8]
je 0x4082ff
cmp esi, ecx
je 0x40829e
mov eax, ecx
sub eax, esi
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov edi, edx
sub edi, ecx
cmp edi, eax
jae 0x408269
sub esp, 0x10
mov cl, byte [esp + 0xf0]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x40829a
lea edi, [ecx + eax]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x64], edi
lea edi, [esp + 0x54]
cmp edx, 0x10
jb 0x408285
mov edi, dword [esp + 0x54]
add ecx, edi
push eax
push esi
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0xc]
mov byte [edi + eax], 0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x4082dc
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 2
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x42d8a3
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x4082fb
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
lea edx, [esp + 0x54]
cmp ecx, 0x10
jb 0x4082f0
mov edx, dword [esp + 0x54]
mov word [edx + eax], 0xa0d
mov byte [edx + eax + 2], 0
mov ecx, dword [esp + 8]
test esi, esi
je 0x407907
sub ecx, esi
cmp ecx, 0x1000
jb 0x408327
mov eax, dword [esi - 4]
add esi, 0xfffffffc
sub esi, eax
cmp esi, 0x20
jae 0x408f34
add ecx, 0x23
mov esi, eax
push ecx
push esi
call fcn.0041c66c
add esp, 8
jmp 0x407907
lea eax, [ecx + 0x23]
push eax
mov esi, ecx
call fcn.0041c63c
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x40815f
mov edi, dword [esp + 0xb18]
mov eax, edi
and eax, 0xfffffffe
cmp eax, 0x7ffffffe
je 0x408f3a
mov ecx, dword [esp + 0xb08]
mov eax, dword [esp + 0xb1c]
mov dword [esp + 0x8e0], 0
lea edx, [edi + 2]
cmp edx, 0x10
jb 0x4083cf
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, edx
or eax, 0xf
cmp eax, 0x17
mov ebx, 0x16
cmovae ebx, eax
mov eax, 0x7fffffff
cmp ebx, eax
cmovae ebx, eax
cmp ebx, 0xfff
jb 0x4083e4
lea eax, [ebx + 0x24]
push eax
call fcn.0041c63c
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4083f2
mov ebx, 0xf
lea esi, [esp + 0x8e0]
jmp 0x408405
xor ebx, ebx
jmp 0x4085ff
lea eax, [ebx + 1]
push eax
call fcn.0041c63c
add esp, 4
mov esi, eax
mov dword [esp + 0x8e0], esi
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
cmp eax, 0x10
lea eax, [esp + 0xb08]
cmovb ecx, eax
mov dword [esp + 0x8f0], edx
mov dword [esp + 0x8f4], ebx
mov word [esi], 0x2d2d
lea eax, [esi + 2]
push edi
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + edi + 2], 0
mov ecx, dword [esp + 0x8f0]
mov edx, dword [esp + 0x8f4]
mov eax, edx
sub eax, ecx
cmp eax, 4
jae 0x40847f
sub esp, 0x10
mov al, byte [esp + 0xf0]
mov byte [esp + 4], al
mov eax, 4
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], str.___r_n
lea ecx, [esp + 0x8f0]
call fcn.00403910
jmp 0x4084a6
lea esi, [ecx + 4]
lea eax, [esp + 0x8e0]
mov dword [eax + 0x10], esi
mov esi, eax
cmp edx, 0x10
jb 0x40849a
mov esi, dword [esp + 0x8e0]
mov dword [esi + ecx], 0xa0d2d2d
mov byte [esi + ecx + 4], 0
xor ecx, ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ecx
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xf0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xe0], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0xf4], 0x10
jb 0x4084fd
mov ecx, dword [esp + 0xe0]
jmp 0x408504
lea ecx, [esp + 0xe0]
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov esi, edi
sub esi, edx
cmp esi, eax
jae 0x408538
sub esp, 0x10
mov dl, byte [esp + 0xb48]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [esp + 0x64]
call fcn.00403910
jmp 0x40855f
lea esi, [edx + eax]
mov dword [esp + 0x64], esi
cmp edi, 0x10
jb 0x40854a
mov edi, dword [esp + 0x54]
jmp 0x40854e
lea edi, [esp + 0x54]
add edx, edi
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi], 0
mov eax, dword [esp + 0xf4]
cmp eax, 0x10
jb 0x40859f
mov ecx, dword [esp + 0xe0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x408595
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
mov eax, dword [esp + 0x8f4]
cmp eax, 0x10
jb 0x4085fd
mov ecx, dword [esp + 0x8e0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x4085f3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov bl, 1
mov eax, dword [esp + 0xb1c]
cmp eax, 0x10
jb 0x40863f
mov ecx, dword [esp + 0xb08]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x408635
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
test bl, bl
je 0x4087b5
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], 4
mov dword [esp + 0x40], 0x540053
mov dword [esp + 0x3c], 0x4f0050
mov word [esp + 0x44], 0
test ecx, ecx
je 0x40867e
mov dword [ecx], 0
xorps xmm0, xmm0
movups xmmword [esp + 0xb0], xmm0
movups xmmword [esp + 0xd0], xmm0
movups xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xa4], 0x3c
lea edi, [esp + 0xae0]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], 0x10
lea ebx, [esp + 0x8e0]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], 0x100
lea ecx, [esp + 0xe0]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], 0x400
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0x14], 8
jb 0x4086fa
mov eax, dword [eax]
lea edx, [esp + 0xa4]
push edx
push 0
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x40885a
push str.https
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
add esp, 8
mov esi, eax
test eax, eax
je 0x408740
push str.http
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x40886f
sub esp, 0x14
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], 0x42b1ac
call dword [sym.imp.WININET.dll_InternetOpenW]
test eax, eax
je 0x40886f
movzx ecx, word [esp + 0xbc]
sub esp, 0x20
movaps xmm0, xmmword [0x42b130]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x2c], eax
mov dword [esp], eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.WININET.dll_InternetConnectW]
test eax, eax
je 0x4087bc
xor edx, edx
test esi, esi
sete dl
shl edx, 0x17
or edx, 0x80000
cmp dword [esp + 0x50], 8
jb 0x408817
mov ecx, dword [esp + 0x3c]
jmp 0x40881b
xor ebx, ebx
jmp 0x408ba6
xor ebx, ebx
jmp 0x408b5d
sub esp, 0xc
mov al, byte [esp + 0x8ec]
mov byte [esp + 4], al
lea eax, [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp], esi
lea ecx, [esp + 0x90]
call fcn.00420150
jmp 0x40706c
sub esp, 0x10
mov cl, byte [esp + 0xf0]
mov byte [esp + 4], cl
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esp + 0x7c]
call fcn.0041ffc0
jmp 0x407108
lea ecx, [esp + 0x3c]
lea esi, [esp + 0xe0]
xor ebx, ebx
push ebx
push edx
push ebx
push ebx
push ebx
push esi
push ecx
mov dword [esp + 0x2c], eax
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
test eax, eax
je 0x408b53
mov edi, eax
mov esi, dword [ebp + 0x14]
cmp dword [esp + 0x7c], 0
je 0x408889
cmp dword [esp + 0x80], 8
jb 0x408876
mov eax, dword [esp + 0x6c]
jmp 0x40887a
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 8
mov dword [esp + 4], eax
call fcn.0041ff00
add esp, 8
xor ebx, ebx
jmp 0x408b67
lea eax, [esp + 0x6c]
push 0x20000000
push 0xffffffffffffffff
push eax
push edi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
test esi, esi
je 0x4088df
push 4
push esi
push 5
push edi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x4088b6
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push str.Could_not_unset_send_timeout__continuing..._n
push eax
call fcn.00409060
add esp, 8
push 4
push esi
push 6
push edi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x4088df
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push str.Could_not_unset_receive_timeout__continuing..._n
push eax
call fcn.00409060
add esp, 8
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x68], 0x10
jb 0x4088f0
mov ecx, dword [esp + 0x54]
jmp 0x4088f4
lea ecx, [esp + 0x54]
xor ebx, ebx
push eax
push ecx
push ebx
push ebx
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x408b4c
lea eax, [esp + 0x2c]
mov dword [eax], 8
lea esi, [esp + 0x9c]
push 0
push eax
push esi
push 0x13
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x408b4a
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x408946
mov dword [ecx], eax
cmp eax, 0xc8
jne 0x408b4a
lea eax, [esp + 0x34]
mov dword [eax], 0x40
xor ecx, ecx
mov dword [esp + 0xb20], ecx
mov dword [esp + 0xb30], ecx
mov dword [esp + 0xb34], 0xf
mov byte [esp + 0xb20], 0
lea esi, [esp + 0xb38]
push ecx
push eax
push esi
push 5
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov edx, 0
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 4], edi
je 0x4089e0
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
add esp, 0xc
mov edx, eax
mov edi, dword [esp + 0xb30]
sub eax, edi
jb 0x4089dc
mov ecx, dword [esp + 0xb34]
cmp ecx, edx
je 0x4089dc
jb 0x408f09
cmp edx, 0xf
ja 0x4089dc
cmp ecx, 0x10
jae 0x408f44
mov edi, dword [esp + 4]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
xor eax, eax
push eax
push eax
lea eax, [esp + 0x38]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x408c83
mov edi, dword [esp + 0x30]
test edi, edi
je 0x408c7f
js 0x408f3f
cmp edi, 0x1000
jb 0x408a35
lea eax, [edi + 0x23]
push eax
call fcn.0041c63c
add esp, 4
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x408a40
push edi
call fcn.0041c63c
add esp, 4
mov esi, eax
push edi
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xb08]
push eax
push dword [esp + 0x34]
push esi
push dword [esp + 0x10]
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [esp + 0x14], eax
test eax, eax
setne al
mov ebx, dword [esp + 0xb08]
test ebx, ebx
setne cl
and cl, al
mov byte [esp + 8], cl
cmp cl, 1
jne 0x408b07
mov eax, dword [esp + 0xb30]
mov ecx, dword [esp + 0xb34]
mov edx, ecx
sub edx, eax
cmp edx, ebx
jae 0x408ac1
sub esp, 0x10
mov al, byte [esp + 0x48]
mov byte [esp + 4], al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp], ebx
lea ecx, [esp + 0xb30]
call fcn.00403910
jmp 0x408b03
lea edx, [eax + ebx]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xb30], edx
lea edx, [esp + 0xb20]
cmp ecx, 0x10
jb 0x408ae6
mov edx, dword [esp + 0xb20]
mov dword [esp + 0x28], edx
add eax, edx
push ebx
push esi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov byte [ecx + eax], 0
add dword [esp + 0x18], ebx
cmp edi, 0x1000
jb 0x408b25
mov eax, dword [esi - 4]
add esi, 0xfffffffc
sub esi, eax
cmp esi, 0x20
jae 0x408f34
add edi, 0x23
mov esi, eax
push edi
push esi
call fcn.0041c66c
add esp, 8
cmp byte [esp + 8], 0
mov edi, dword [esp + 4]
jne 0x4089ec
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x14]
jmp 0x408c86
xor ebx, ebx
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [esp + 0x10]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [esp + 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esp + 0x50]
cmp eax, 8
jb 0x408ba6
mov ecx, dword [esp + 0x3c]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x408b9c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov eax, dword [esp + 0x68]
cmp eax, 0x10
jb 0x408be0
mov ecx, dword [esp + 0x54]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x408bd6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov eax, dword [esp + 0x80]
cmp eax, 8
jb 0x408c22
mov ecx, dword [esp + 0x6c]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x408c18
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov eax, dword [esp + 0x98]
cmp eax, 8
jb 0x408c67
mov ecx, dword [esp + 0x84]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x408c5d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov ecx, dword [esp + 0xb78]
xor ecx, ebp
call fcn.0041d150
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 4]
mov edx, dword [ebp + 0x18]
test eax, eax
je 0x408ccc
cmp dword [esp + 0x24], 0
sete al
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x20]
sete bl
or bl, al
test edx, edx
je 0x408ea1
test bl, bl
je 0x408ea1
cmp dword [esp + 0xb30], 0
je 0x408cd3
cmp dword [esp + 0xb34], 0x10
jb 0x408cfd
mov eax, dword [esp + 0xb20]
jmp 0x408d04
xor ebx, ebx
jmp 0x408ea1
xor eax, eax
mov dword [esp + 0xb08], eax
mov dword [esp + 0xb18], eax
mov dword [esp + 0xb1c], 7
mov word [esp + 0xb08], 0
jmp 0x408df5
lea eax, [esp + 0xb20]
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push eax
push esi
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x408d45
mov ebx, eax
add eax, eax
xor ecx, ecx
dec ecx
test ebx, ebx
cmovns ecx, eax
push ecx
call fcn.0041c730
add esp, 4
mov esi, eax
cmp dword [esp + 0xb34], 0x10
jb 0x408d6d
mov eax, dword [esp + 0xb20]
jmp 0x408d74
mov dword [esp + 0xb08], esi
mov dword [esp + 0xb18], esi
mov dword [esp + 0xb1c], 7
mov word [esp + 0xb08], 0
jmp 0x408df2
lea eax, [esp + 0xb20]
xor edi, edi
push ebx
push esi
push 0xffffffffffffffff
push eax
push edi
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 0xb08], edi
mov dword [esp + 0xb18], edi
mov dword [esp + 0xb1c], 7
mov word [esp + 0xb08], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov ebx, eax
cmp eax, 7
ja 0x408ee6
mov dword [esp + 0xb18], ebx
mov eax, ebx
add eax, ebx
push eax
push esi
lea eax, [esp + 0xb10]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [esp + ebx*2 + 0xb08], 0
mov edi, dword [esp + 4]
push esi
call fcn.0041c739
add esp, 4
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0xb08]
cmp ecx, edx
je 0x408e59
cmp eax, 8
jb 0x408e3f
mov ecx, dword [edx]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x408e32
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
mov edx, dword [ebp + 0x18]
lea esi, [esp + 0xb1c]
movsd xmm0, qword [esi - 4]
movsd qword [edx + 0x10], xmm0
movups xmm0, xmmword [esi - 0x14]
movups xmmword [edx], xmm0
jmp 0x408e99
lea esi, [edx + 0x14]
cmp eax, 8
jb 0x408e99
mov ecx, dword [edx]
lea edi, [eax + eax]
add edi, 2
cmp edi, 0x1000
jb 0x408e8b
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0041c66c
add esp, 8
mov edi, dword [esp + 4]
mov dword [esi], 7
mov bl, 1
mov eax, dword [esp + 0xb34]
cmp eax, 0x10
jb 0x408b4c
mov ecx, dword [esp + 0xb20]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x408ed7
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x408f34
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0041c66c
add esp, 8
jmp 0x408b4c
sub esp, 0xc
mov al, byte [esp + 0x44]
mov byte [esp + 4], al
mov dword [esp + 8], esi
mov dword [esp], ebx
lea ecx, [esp + 0xb14]
call fcn.00420150
jmp 0x408de5
sub esp, 8
mov cl, byte [esp + 0xb10]
mov byte [esp + 4], cl
mov dword [esp], eax
lea esi, [esp + 0xb28]
mov ecx, esi
mov ebx, edx
call fcn.0041eb00
mov edx, ebx
mov dword [esi + 0x10], edi
jmp 0x4089dc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.0041eda0
call fcn.0041fef0
lea ecx, [esp + 0xb20]
mov esi, edx
call fcn.0041ff60
mov edx, esi
jmp 0x4089dc