Function at 0x450860
Capabilities:
Get file size
Prepare http request
Read and send data from client to server
Read file on windows
Receive http response
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5269
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push esi
push edi
mov eax, dword [0x535a40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], 0
push 0x18
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
call fcn.004c3653
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x48], eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov eax, dword [edi]
test eax, eax
je 0x4508d8
cmp dword [eax], 0x4f9d20
je 0x45092b
mov ecx, edi
call fcn.00404db0
push 0xc
call fcn.004c3653
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x45091b
push 0x4f9d20
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
je 0x45177d
jmp 0x45091d
xor esi, esi
mov byte [ebp - 4], 0
mov dword [edi], esi
test esi, esi
je 0x451787
mov edi, dword [ebp + 8]
lea eax, [edi + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x450945
lock inc dword [eax + 8]
mov eax, dword [eax]
jmp 0x450947
xor eax, eax
push 0
push 0
push 3
push 0
push 7
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4509c3
lea eax, [ebp - 0x74]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
cmp dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x74]
jl 0x450990
jg 0x450981
cmp eax, 0x2000000
jbe 0x450990
lea ecx, [ebp - 0x28]
mov ebx, 0xdf
call fcn.00404db0
jmp 0x4509d7
push eax
call fcn.004c8d7a
add esp, 4
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x64]
push 0
push ecx
push dword [ebp - 0x74]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x450a1a
push dword [ebp - 0x38]
call fcn.004c8d5f
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x28]
mov ebx, eax
call fcn.00404db0
test ebx, ebx
je 0x450a0f
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x50]
push ebx
push eax
call fcn.0044f360
add edi, 0x18
lea eax, [ebp - 0x50]
cmp edi, eax
je 0x450a02
mov ecx, edi
call fcn.00404db0
mov eax, dword [ebp - 0x50]
mov dword [edi], eax
test eax, eax
je 0x450a02
lock inc dword [eax + 8]
lea ecx, [ebp - 0x50]
call fcn.00404db0
jmp 0x451749
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
jmp 0x450a2f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x4c], eax
call fcn.00404db0
mov dword [ebp - 0x28], 0
push 0x5029a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404a70
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 3
push 0x5029f0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x4fa480
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x450a81
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], 1
call fcn.00405180
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x5029f8
lea ecx, [ebp - 0x14]
call fcn.00404a70
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x4fa480
lea ecx, [ebp - 0x2c]
call fcn.00404a70
mov esi, eax
push 0x5027e8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.00431d30
mov ecx, dword [esi]
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450b1b
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 2
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x20]
call fcn.00404a70
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x450b4a
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], 6
call fcn.00405180
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x5029a0
lea ecx, [ebp - 0x2c]
call fcn.00404a70
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
push 0x5029f0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x4fa480
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xe
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450bd9
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 8
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x502a58
lea ecx, [ebp - 0x14]
call fcn.00404a70
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x4fa480
lea ecx, [ebp - 0x2c]
call fcn.00404a70
mov esi, eax
lea ecx, [edi + 0x10]
mov byte [ebp - 4], 0x12
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.0044c450
mov ecx, dword [esi]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x450c75
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], 0x10
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x20]
call fcn.00404a70
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450ca4
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x30
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
mov eax, dword [edi]
mov ecx, dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x450e54
mov eax, dword [eax]
test eax, eax
je 0x450e54
push eax
call ecx
test eax, eax
je 0x450e4e
push 0x5029a0
lea ecx, [ebp - 0x2c]
call fcn.00404a70
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x17
push 0x5029f0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x4fa480
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x18
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450d58
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x8000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x502ad0
lea ecx, [ebp - 0x14]
call fcn.00404a70
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x4fa480
lea ecx, [ebp - 0x1c]
call fcn.00404a70
mov eax, dword [eax]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x18], eax
test eax, eax
je 0x450ddf
lock inc dword [eax + 8]
push edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], 0x10000
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x20]
call fcn.00404a70
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450e0e
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x30000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.00404db0
mov ecx, dword [sym.imp.OLEAUT32.dll_VariantInit]
mov eax, dword [edi + 4]
add edi, 4
test eax, eax
je 0x450fb4
mov eax, dword [eax]
test eax, eax
je 0x450fb4
push eax
call ecx
test eax, eax
je 0x450fb4
push 0x5029a0
lea ecx, [ebp - 0x2c]
call fcn.00404a70
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x20
push 0x5029f0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x4fa480
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x21
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450ebe
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x100000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x502b48
lea ecx, [ebp - 0x14]
call fcn.00404a70
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x4fa480
lea ecx, [ebp - 0x1c]
call fcn.00404a70
mov eax, dword [eax]
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x18], eax
test eax, eax
je 0x450f45
lock inc dword [eax + 8]
push edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], 0x40000
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x20]
call fcn.00404a70
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x28
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450f74
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0xc0000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x5029a0
lea ecx, [ebp - 0x2c]
call fcn.00404a70
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x29
push 0x5029f0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x4fa480
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x2a
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 0x2c
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x450ffb
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x1000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00404db0
push dword [ebp - 0x3c]
lea eax, [ebp - 0x1c]
push 0x502bc0
push eax
call fcn.00404fa0
add esp, 0xc
mov esi, eax
push 0x500150
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x2d
call fcn.00404a70
mov eax, dword [esi]
mov byte [ebp - 4], 0x2f
mov dword [ebp - 0x18], eax
test eax, eax
je 0x451073
lock inc dword [eax + 8]
lea eax, [ebp - 0x14]
mov dword [ebp - 0x24], 0x2000
push eax
lea ecx, [ebp - 0x18]
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x20]
call fcn.00404a70
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x4510a5
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x6000
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x14]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.00404db0
push 0x4fa480
lea ecx, [ebp - 0x1c]
call fcn.00404a70
push eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x32
push 0x502c30
push eax
call fcn.00404fa0
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x33
call fcn.00405180
lea ecx, [ebp - 0x20]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
mov dword [ebp - 0x20], 0
push 0x4fa480
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x34
call fcn.00404a70
mov esi, eax
push 0x5029f0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x35
call fcn.00404a70
mov eax, dword [esi]
mov byte [ebp - 4], 0x37
mov dword [ebp - 0x14], eax
test eax, eax
je 0x451169
lock inc dword [eax + 8]
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], 0x40
push eax
lea ecx, [ebp - 0x14]
call fcn.00405180
push 0x5029a0
lea ecx, [ebp - 0x40]
call fcn.00404a70
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x39
mov dword [ebp - 0x3c], ecx
test ecx, ecx
je 0x45119b
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x24], 0xc0
call fcn.00405180
push 0x5029f0
lea ecx, [ebp - 0x2c]
call fcn.00404a70
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 0x3b
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4511ca
lock inc dword [eax + 8]
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x24], 0x1c0
push eax
lea ecx, [ebp - 0x18]
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x60]
call fcn.00404a70
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x3d
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x4511fc
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x24], 0x3c0
call fcn.00405180
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x20]
call fcn.00405180
lea ecx, [ebp - 0x10]
call fcn.00404db0
lea ecx, [ebp - 0x60]
call fcn.00404db0
lea ecx, [ebp - 0x18]
call fcn.00404db0
lea ecx, [ebp - 0x2c]
call fcn.00404db0
lea ecx, [ebp - 0x3c]
call fcn.00404db0
lea ecx, [ebp - 0x40]
call fcn.00404db0
lea ecx, [ebp - 0x14]
call fcn.00404db0
lea ecx, [ebp - 0x1c]
call fcn.00404db0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x34
call fcn.00404db0
push 0x800000
push 0
push 0
push 0
push 0x502c84
push 0x5027dc
push dword [ebx + 4]
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov ebx, eax
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x80]
mov dword [ebp - 0x1c], ebx
push eax
lea eax, [ebp - 0x98]
mov dword [ebp - 0x94], 3
push eax
mov eax, dword [ebp - 0x30]
push 0x5027a4
mov dword [ebp - 0x84], 1
push dword [eax]
call dword [sym.imp.WINHTTP.dll_WinHttpGetProxyForUrl]
test eax, eax
je 0x4512d3
push 0xc
lea eax, [ebp - 0x80]
push eax
push 0x26
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
push 0x502cb0
lea ecx, [ebp - 0x60]
call fcn.00404a70
mov esi, eax
push 0x5029a0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x3e
call fcn.00404a70
mov ecx, dword [esi]
mov byte [ebp - 4], 0x40
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x451304
lock inc dword [ecx + 8]
push eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x24], 0x400
call fcn.00405180
push 0x4fa480
lea ecx, [ebp - 0x34]
call fcn.00404a70
push eax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x41
push eax
lea ecx, [ebp - 0x14]
call fcn.00405070
lea ecx, [ebp - 0x34]
call fcn.00404db0
lea ecx, [ebp - 0x14]
call fcn.00404db0
lea ecx, [ebp - 0x40]
call fcn.00404db0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x46
call fcn.00404db0
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x45136f
mov eax, dword [edi]
test eax, eax
je 0x45136f
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov dword [ebp - 0x14], eax
jmp 0x451376
mov dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x45138c
mov eax, dword [esi]
test eax, eax
je 0x45138c
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
jmp 0x45138e
xor eax, eax
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov eax, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x4c]
test eax, eax
je 0x4513a1
mov eax, dword [eax]
jmp 0x4513a3
xor eax, eax
push 0
push ecx
push 0
push 0
push 0
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
jne 0x45141a
push dword [ebp - 0x38]
call fcn.004c8d5f
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x54]
add esp, 4
push 0
push eax
call fcn.0044f360
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x54]
add eax, 0x18
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x4513f8
mov ecx, eax
call fcn.00404db0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x54]
mov dword [ecx], eax
test eax, eax
je 0x4513f8
lock inc dword [eax + 8]
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push dword [ebp - 0x38]
call fcn.004c8d5f
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x54]
jmp 0x4516b0
test edi, edi
je 0x451430
mov eax, dword [edi]
test eax, eax
je 0x451430
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov dword [ebp - 0x14], eax
jmp 0x451437
mov dword [ebp - 0x14], 0
test edi, edi
je 0x45144e
mov eax, dword [edi + 4]
test eax, eax
jne 0x451450
push dword [edi]
call fcn.004c3200
mov dword [edi + 4], eax
jmp 0x451450
xor eax, eax
lea ecx, [ebp - 0x68]
push ecx
push dword [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
lea eax, [ebp - 0x68]
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x38]
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
test esi, esi
je 0x451486
mov eax, dword [esi]
test eax, eax
je 0x451486
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov dword [ebp - 0x14], eax
jmp 0x45148d
mov dword [ebp - 0x14], 0
test esi, esi
je 0x4514a4
mov eax, dword [esi + 4]
test eax, eax
jne 0x4514a6
push dword [esi]
call fcn.004c3200
mov dword [esi + 4], eax
jmp 0x4514a6
xor eax, eax
lea ecx, [ebp - 0x68]
push ecx
push dword [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
push dword [ebp - 0x38]
call fcn.004c8d5f
add esp, 4
push 0
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
jne 0x45151e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0044f360
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x58]
add eax, 0x18
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x451507
mov ecx, eax
call fcn.00404db0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x58]
mov dword [ecx], eax
test eax, eax
je 0x451507
lock inc dword [eax + 8]
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x58]
jmp 0x4516b0
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x30]
push ebx
call fcn.0044fd20
push dword [ebp - 0x1c]
mov ebx, eax
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test ebx, ebx
jne 0x451679
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
test eax, eax
je 0x45154d
mov eax, dword [eax]
jmp 0x45154f
xor eax, eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0044f460
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0x47
test eax, eax
je 0x451674
mov eax, dword [eax]
test eax, eax
je 0x451674
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x451674
push ecx
mov ecx, esp
push 0x502d0c
call fcn.00404a70
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0044fb80
mov ebx, dword [ebp + 8]
push eax
lea ecx, [ebx + 0x1c]
call fcn.0044bf00
lea ecx, [ebp - 0x34]
call fcn.00404db0
lea ecx, [ebx + 0x1c]
call fcn.00451cb0
test eax, eax
jne 0x451622
push ecx
mov ecx, esp
push 0x502d20
call fcn.00404a70
mov ebx, dword [ebp - 0x30]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
call fcn.0044fb80
push eax
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x48
push 0x502d38
push eax
call fcn.00404fa0
mov ecx, dword [ebp + 8]
add esp, 0xc
push eax
lea ecx, [ecx + 0x18]
call fcn.0044bf00
lea ecx, [ebp - 0x34]
call fcn.00404db0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x47
call fcn.00404db0
jmp 0x451635
mov ecx, dword [ebp + 8]
push 0x5001e0
add ecx, 0x20
call fcn.00421a30
mov ebx, dword [ebp - 0x30]
push ecx
mov ecx, esp
push 0x502d60
call fcn.00404a70
lea eax, [ebp - 0x48]
mov ecx, ebx
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0044fb80
mov ecx, dword [ebp + 8]
push eax
lea ecx, [ecx + 8]
call fcn.0044bf00
lea ecx, [ebp - 0x34]
call fcn.00404db0
lea eax, [ebp + 8]
push eax
lea ecx, [ebx + 0x10]
call fcn.00431600
mov ebx, dword [ebp - 0x2c]
lea ecx, [ebp + 0xc]
jmp 0x4516b0
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x5c]
push ebx
push eax
call fcn.0044f360
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x5c]
add eax, 0x18
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x4516ad
mov ecx, eax
call fcn.00404db0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x5c]
mov dword [ecx], eax
test eax, eax
je 0x4516ad
lock inc dword [eax + 8]
lea ecx, [ebp - 0x5c]
call fcn.00404db0
lea ecx, [ebp - 0x6c]
call fcn.00404db0
mov ecx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
or eax, 0xffffffff
test esi, esi
je 0x45170c
lock xadd dword [esi + 8], eax
dec eax
jne 0x451709
mov eax, dword [esi]
test eax, eax
je 0x4516e1
push eax
call ecx
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x4516f8
push eax
call fcn.004c3683
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.004c34a9
mov ecx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
add esp, 8
or eax, 0xffffffff
test edi, edi
je 0x451749
lock xadd dword [edi + 8], eax
dec eax
jne 0x451749
mov eax, dword [edi]
test eax, eax
je 0x451727
push eax
call ecx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x45173e
push eax
call fcn.004c3683
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.004c34a9
add esp, 8
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
lea eax, [ebp - 0x48]
push eax
mov ecx, eax
call fcn.0044bc80
push 0x18
push dword [ebp - 0x48]
call fcn.004c34a9
add esp, 8
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x8007000e
call fcn.004c3020
push 0x8007000e
call fcn.004c3020
int3