Function at 0x4043e0
Capabilities:
Initialize winhttp library
Prepare http request
Print debug messages
Receive http response

Disassembly:
mov eax, 0x1c34
call fcn.00411110
mov eax, dword [0x41a464]
xor eax, esp
mov dword [esp + 0x1c2c], eax
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov esi, ecx
xor ebp, ebp
push esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
lea edx, [esp + 0x30]
lea ecx, [esp + 0x163c]
lea edi, [esp + 0x103c]
call fcn.004042c0
add esp, 4
push ebp
push ebp
push ebp
push ebp
push str.WinHTTP_Example_1.0
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x404489
push ebp
push 0x1bb
mov ecx, edi
push ecx
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov dword [esp + 0x28], eax
test eax, eax
je 0x404489
push 0x800000
push ebp
push ebp
push ebp
lea edx, [esp + 0x1648]
push edx
push 0x4182c0
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov ebp, eax
mov dword [esp + 0x18], eax
push 4
lea eax, [esp + 0x24]
push eax
push 0x1f
push ebp
mov dword [esp + 0x30], 0x3100
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test ebp, ebp
je 0x4044b8
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
je 0x404e2f
push 0
push ebp
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x404e2f
lea ecx, [esp + 0x10]
push ecx
push ebp
mov dword [esp + 0x18], 0
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
jne 0x4044fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error__u_in_WinHttpQueryDataAvailable._n
call fcn.00406c48
add esp, 8
mov edx, dword [esp + 0x10]
inc edx
push edx
call fcn.004075d2
mov ebp, eax
xor edi, edi
add esp, 4
cmp ebp, edi
je 0x4045e0
mov eax, dword [esp + 0x10]
inc eax
push eax
push edi
push ebp
call fcn.004102d0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
push edx
push ebp
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
jne 0x404557
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error__u_in_WinHttpReadData._n
call fcn.00406c48
add esp, 8
jmp 0x4045c8
push ebp
push 0x417efc
call fcn.00406c48
add esp, 8
xor esi, esi
cmp ebx, edi
je 0x40457b
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404570
sub eax, edx
mov esi, eax
mov ecx, dword [esp + 0x10]
lea edx, [esi + ecx + 1]
push edx
push ebx
call fcn.0040618b
mov ebx, eax
mov eax, dword [esp + 0x18]
inc eax
push eax
push edi
add esi, ebx
push esi
call fcn.004102d0
mov eax, ebp
add esp, 0x14
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4045a2
mov edi, ebx
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4045b0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
push ebp
call fcn.00406beb
add esp, 4
cmp dword [esp + 0x10], edi
jbe 0x4045f7
mov ebp, dword [esp + 0x18]
jmp 0x4044d1
push str.Out_of_memory_n
mov dword [esp + 0x28], ebx
call fcn.00406c48
add esp, 4
mov dword [esp + 0x10], edi
jmp 0x4045fb
mov dword [esp + 0x24], ebx
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.pszOutBuffer._n
call esi
push ebx
call esi
cmp ebx, edi
je 0x404e45
push ebx
call fcn.00401d80
add esp, 4
cmp eax, edi
je 0x404e24
cmp dword [eax], 4
je 0x40462d
xor eax, eax
jmp 0x404630
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov ebp, 0x20
mov dword [esp + 0x20], eax
cmp eax, edi
je 0x404e24
mov ebx, dword [eax + 4]
mov esi, dword [eax]
cmp ebx, edi
jne 0x404654
mov eax, str.null
jmp 0x40468d
mov eax, dword [ebx + 0x10]
cmp eax, edi
jne 0x40466b
call fcn.00405480
mov dword [ebx + 0x10], eax
cmp eax, edi
jne 0x404673
xor eax, eax
jmp 0x40468d
mov ecx, dword [eax]
mov byte [ecx], 0
mov dword [eax + 4], edi
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
push edx
push ebx
call eax
add esp, 8
cmp eax, edi
jge 0x404688
xor eax, eax
jmp 0x40468d
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
push eax
push esi
push str._t_s:__s_n
call fcn.00406c48
add esp, 0xc
mov ecx, str.AllowedPath
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4046c3
test dl, dl
je 0x4046bf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4046c3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4046a3
xor eax, eax
jmp 0x4046c8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x404a2b
cmp ebx, edi
jne 0x4046db
mov edi, str.null
jmp 0x40473b
mov eax, dword [ebx + 0x10]
cmp eax, edi
jne 0x40471d
push 0xc
push 1
call fcn.0040614b
mov esi, eax
add esp, 8
cmp esi, edi
je 0x404712
push ebp
mov dword [esi + 8], ebp
mov dword [esi + 4], edi
call fcn.00405f76
add esp, 4
mov dword [esi], eax
cmp eax, edi
jne 0x404714
push esi
call fcn.00406040
add esp, 4
xor esi, esi
mov dword [ebx + 0x10], esi
cmp esi, edi
jne 0x404725
jmp 0x40473b
mov edx, dword [eax]
mov byte [edx], 0
mov dword [eax + 4], edi
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 8]
push eax
push ebx
call ecx
add esp, 8
cmp eax, edi
jl 0x40473b
mov edx, dword [ebx + 0x10]
mov edi, dword [edx]
push 0x2a4
push 1
call fcn.0040614b
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x404754
xor esi, esi
jmp 0x404798
push 0xc
push 1
call fcn.0040614b
mov esi, eax
add esp, 8
test esi, esi
je 0x404788
push ebp
mov dword [esi + 8], ebp
mov dword [esi + 4], 0
call fcn.00405f76
add esp, 4
mov dword [esi], eax
test eax, eax
jne 0x40478a
push esi
call fcn.00406040
add esp, 4
xor esi, esi
push ebx
mov dword [ebx + 4], esi
call fcn.00401d10
add esp, 4
mov esi, ebx
push edi
push esi
call fcn.00401de0
add esp, 8
cmp dword [esi + 0x18], 0
mov ebp, eax
je 0x4047ac
xor ebp, ebp
push esi
call fcn.00401d10
mov ebx, dword [esi + 4]
add esp, 4
test ebx, ebx
je 0x4047d0
mov eax, dword [ebx]
push eax
call fcn.00406040
add esp, 4
push ebx
call fcn.00406040
add esp, 4
push esi
call fcn.00406040
add esp, 4
push str.my_array_n
call fcn.00406c48
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 4]
add esp, 4
push eax
push str.iPathNumCfg__d._n
mov dword [0x498f74], eax
call fcn.00406c48
add esp, 8
cmp dword [0x498f74], 0
jne 0x40482d
add dword [ebp + 0xc], 0xffffffff
jne 0x404e12
mov edx, dword [ebp + 4]
push ebp
call edx
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x28]
add esp, 4
xor edi, edi
jmp 0x404633
push 0x40000
push 0
push 0x4a6660
call fcn.004102d0
mov eax, dword [ebp + 0x18]
xor edi, edi
add esp, 0xc
cmp dword [eax + 4], edi
jle 0x404a06
mov dword [esp + 0x14], 0x4a6660
jmp 0x404860
mov eax, dword [ebp + 0x18]
cmp edi, dword [eax + 4]
jge 0x4049fe
mov ecx, dword [eax]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x4049fe
push 0x3ff
lea edx, [esp + 0x123d]
push 0
push edx
mov byte [esp + 0x1244], 0
call fcn.004102d0
add esp, 0xc
push 0x3ff
lea eax, [esp + 0x83d]
push 0
push eax
mov byte [esp + 0x844], 0
call fcn.004102d0
add esp, 0xc
push 0x3ff
lea ecx, [esp + 0x43d]
push 0
push ecx
mov byte [esp + 0x444], 0
call fcn.004102d0
add esp, 0xc
cmp dword [esi], 6
je 0x40491a
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4048f2
call fcn.00405480
mov dword [esi + 0x10], eax
test eax, eax
jne 0x4048fe
xor esi, esi
jmp 0x40491d
mov edx, dword [eax]
mov byte [edx], 0
mov dword [eax + 4], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 8]
push eax
push esi
call ecx
add esp, 8
test eax, eax
jge 0x404913
xor esi, esi
jmp 0x40491d
mov edx, dword [esi + 0x10]
mov esi, dword [edx]
jmp 0x40491d
mov esi, dword [esi + 0x18]
push 0x400
lea eax, [esp + 0x83c]
push esi
push eax
call fcn.00406da0
lea eax, [esp + 0x844]
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404940
lea ecx, [esp + 0x438]
sub eax, edx
push ecx
push eax
lea ebx, [esp + 0x840]
call fcn.00401000
lea eax, [esp + 0x440]
add esp, 8
lea edx, [eax + 1]
jmp 0x404970
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404970
sub eax, edx
mov edx, eax
lea eax, [esp + 0x838]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404985
lea ecx, [esp + 0x438]
push ecx
push edx
sub eax, esi
push eax
push edi
lea edx, [esp + 0x1248]
push str._t__d___d__d__s_n
push edx
call fcn.004060ce
add esp, 0x18
lea eax, [esp + 0x1238]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x438]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4049c6
mov esi, dword [esp + 0x14]
sub eax, ecx
push eax
lea ecx, [esp + 0x43c]
push ecx
push esi
call fcn.00406da0
mov edx, dword [ebp + 0x18]
inc edi
add esi, 0x100
add esp, 0xc
cmp edi, dword [edx + 4]
mov dword [esp + 0x14], esi
jl 0x404860
jmp 0x404a06
mov dword [esp + 0x1c], 1
add dword [ebp + 0xc], 0xffffffff
jne 0x404e12
mov eax, dword [ebp + 4]
push ebp
call eax
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x28]
add esp, 4
xor edi, edi
jmp 0x404633
mov ecx, str.keyword
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404a52
test dl, dl
je 0x404a4e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404a52
add eax, 2
add ecx, 2
test dl, dl
jne 0x404a32
xor eax, eax
jmp 0x404a57
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x404e05
cmp ebx, edi
jne 0x404a6a
mov edi, str.null
jmp 0x404aca
mov eax, dword [ebx + 0x10]
cmp eax, edi
jne 0x404aac
push 0xc
push 1
call fcn.0040614b
mov esi, eax
add esp, 8
cmp esi, edi
je 0x404aa1
push ebp
mov dword [esi + 8], ebp
mov dword [esi + 4], edi
call fcn.00405f76
add esp, 4
mov dword [esi], eax
cmp eax, edi
jne 0x404aa3
push esi
call fcn.00406040
add esp, 4
xor esi, esi
mov dword [ebx + 0x10], esi
cmp esi, edi
jne 0x404ab4
jmp 0x404aca
mov ecx, dword [eax]
mov byte [ecx], 0
mov dword [eax + 4], edi
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
push edx
push ebx
call eax
add esp, 8
cmp eax, edi
jl 0x404aca
mov ecx, dword [ebx + 0x10]
mov edi, dword [ecx]
push 0x2a4
push 1
call fcn.0040614b
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x404ae3
xor esi, esi
jmp 0x404b27
push 0xc
push 1
call fcn.0040614b
mov esi, eax
add esp, 8
test esi, esi
je 0x404b17
push ebp
mov dword [esi + 8], ebp
mov dword [esi + 4], 0
call fcn.00405f76
add esp, 4
mov dword [esi], eax
test eax, eax
jne 0x404b19
push esi
call fcn.00406040
add esp, 4
xor esi, esi
push ebx
mov dword [ebx + 4], esi
call fcn.00401d10
add esp, 4
mov esi, ebx
push edi
push esi
call fcn.00401de0
add esp, 8
cmp dword [esi + 0x18], 0
mov edi, eax
mov dword [esp + 0x14], eax
je 0x404b43
xor edi, edi
mov dword [esp + 0x14], edi
push esi
call fcn.00401d10
mov ebx, dword [esi + 4]
add esp, 4
test ebx, ebx
je 0x404b67
mov edx, dword [ebx]
push edx
call fcn.00406040
add esp, 4
push ebx
call fcn.00406040
add esp, 4
push esi
call fcn.00406040
add esp, 4
push str.my_array_n
call fcn.00406c48
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 4]
add esp, 4
push eax
push str.iFileNumCfg__d._n
mov dword [0x4a65f4], eax
call fcn.00406c48
add esp, 8
cmp dword [0x4a65f4], 0
jne 0x404bc8
add dword [edi + 0xc], 0xffffffff
jne 0x404e12
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
push eax
call ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x28]
add esp, 4
xor edi, edi
jmp 0x404633
push 0x40000
push 0
push 0x4a7a60
call fcn.004102d0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x18]
xor ebp, ebp
add esp, 0xc
cmp dword [eax + 4], ebp
jle 0x404de0
mov dword [esp + 0x30], 0x4a7a60
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
xor ebx, ebx
cmp ebp, dword [eax + 4]
jge 0x404dd8
mov edx, dword [eax]
mov esi, dword [edx + ebp*4]
cmp esi, ebx
je 0x404dd8
push 0x3ff
lea eax, [esp + 0x183d]
push ebx
push eax
mov byte [esp + 0x1844], bl
call fcn.004102d0
add esp, 0xc
push 0x3ff
lea ecx, [esp + 0xc3d]
push ebx
push ecx
mov byte [esp + 0xc44], bl
call fcn.004102d0
add esp, 0xc
push 0x3ff
lea edx, [esp + 0x3d]
push ebx
push edx
mov byte [esp + 0x44], bl
call fcn.004102d0
add esp, 0xc
cmp dword [esi], 6
je 0x404ca6
mov eax, dword [esi + 0x10]
cmp eax, ebx
jne 0x404c82
call fcn.00405480
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x404c8a
xor eax, eax
jmp 0x404ca9
mov ecx, dword [eax]
mov byte [ecx], 0
mov dword [eax + 4], ebx
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 8]
push edx
push esi
call eax
add esp, 8
cmp eax, ebx
jge 0x404c9f
xor eax, eax
jmp 0x404ca9
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
jmp 0x404ca9
mov eax, dword [esi + 0x18]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404cb0
sub eax, edx
cmp dword [esi], 6
mov edi, eax
je 0x404cfb
mov eax, dword [esi + 0x10]
cmp eax, ebx
jne 0x404cd7
call fcn.00405480
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x404cdf
xor esi, esi
jmp 0x404cfe
mov edx, dword [eax]
mov byte [edx], 0
mov dword [eax + 4], ebx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 8]
push eax
push esi
call ecx
add esp, 8
cmp eax, ebx
jge 0x404cf4
xor esi, esi
jmp 0x404cfe
mov edx, dword [esi + 0x10]
mov esi, dword [edx]
jmp 0x404cfe
mov esi, dword [esi + 0x18]
push edi
lea eax, [esp + 0xc3c]
push esi
push eax
call fcn.00406da0
lea eax, [esp + 0xc44]
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404d20
lea ecx, [esp + 0x38]
sub eax, edx
push ecx
push eax
lea ebx, [esp + 0xc40]
call fcn.00401000
lea eax, [esp + 0x40]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404d45
sub eax, edx
mov edx, eax
lea eax, [esp + 0xc38]
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404d60
lea ecx, [esp + 0x38]
push ecx
push edx
sub eax, esi
push eax
push ebp
lea edx, [esp + 0x1848]
push str._t__d___d__d__s_n
push edx
call fcn.004060ce
add esp, 0x18
lea eax, [esp + 0x1838]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x38]
lea ecx, [eax + 1]
jmp 0x404da0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404da0
mov esi, dword [esp + 0x30]
sub eax, ecx
push eax
lea ecx, [esp + 0x3c]
push ecx
push esi
call fcn.00406da0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x18]
inc ebp
add esi, 0x100
add esp, 0xc
cmp ebp, dword [eax + 4]
mov dword [esp + 0x30], esi
jge 0x404de0
jmp 0x404bf6
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x14]
add dword [eax + 0xc], 0xffffffff
jne 0x404e12
mov ecx, dword [eax + 4]
push eax
call ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x28]
add esp, 4
xor edi, edi
jmp 0x404633
push str.whats_this_json._n
call fcn.00406c48
add esp, 4
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x24]
xor edi, edi
jmp 0x404633
push ebx
call fcn.00406040
add esp, 4
jmp 0x404e45
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error__d_has_occurred._n
call fcn.00406c48
add esp, 8
xor edi, edi
mov eax, dword [esp + 0x18]
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
cmp eax, edi
je 0x404e56
push eax
call esi
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x404e61
push eax
call esi
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x404e6c
push eax
call esi
mov ecx, dword [esp + 0x1c3c]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00405f18
add esp, 0x1c34
ret