Function at 0x4139d0
Capabilities:
Connect to http server
Contain obfuscated stackstrings
Download and write a file
Encode data using xor
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47c6eb
mov eax, dword fs:[0]
push eax
sub esp, 0xb08
mov eax, dword [0x4ade78]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xa6c], eax
mov eax, dword [ebp + 0x18]
push ebx
mov dword [ebp - 0xaac], edi
mov dword [ebp - 0xb14], edi
mov dword [ebp - 0xab4], esi
mov dword [ebp - 0xab8], ebx
mov dword [ebp - 0xaa8], eax
mov dword [ebp - 0xae0], 0
call fcn.00416100
add esp, 4
test al, al
je 0x413a59
push ebx
push edi
call fcn.00413510
add esp, 8
mov eax, edi
jmp 0x415da7
test esi, esi
jne 0x413ab3
push str.InternetOpen_Failed
lea ecx, [ebp - 0xa6c]
call fcn.00401b30
push eax
push edi
mov dword [ebp - 4], 1
call fcn.00413240
mov edx, dword [ebp - 0xa6c]
add edx, 0xfffffff0
add esp, 8
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413aac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
jmp 0x415da7
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa7c], eax
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov dword [ebp - 4], 2
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa90], eax
push 0x49160c
mov ecx, ebx
mov byte [ebp - 4], 3
mov dword [ebp - 0xa64], 0
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa80]
push eax
call fcn.00452d60
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xa90]
push eax
lea eax, [ebp - 0xa7c]
push eax
lea eax, [ebp - 0xa80]
push eax
mov byte [ebp - 4], 4
call fcn.00412fd0
movzx eax, al
add esp, 0x2c
test eax, eax
jne 0x413c01
push str.InternetCrackUrl_Failed
lea ecx, [ebp - 0xa6c]
call fcn.00401b30
push eax
push edi
mov byte [ebp - 4], 5
call fcn.00413240
mov edx, dword [ebp - 0xa6c]
add edx, 0xfffffff0
or esi, 0xffffffff
add esp, 8
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 4
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x413b9f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa80]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413bc2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa90]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413be5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa7c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jmp 0x413aa2
push str.redirectCheck
mov ecx, ebx
mov byte [ebp - 0xa85], 0
call fcn.0042f180
test al, al
je 0x413c48
push str.redirectCheck
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f130
test al, al
je 0x413c48
push str.redirectCheck
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042e620
mov byte [ebp - 0xa85], al
lea eax, [ebp - 0xa70]
push eax
lea eax, [ebp - 0xa71]
push eax
mov eax, dword [ebp - 0xa80]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov byte [ebp - 0xa71], 0
mov dword [ebp - 0xa70], 0x50
call fcn.00403ee0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00412ec0
add esp, 0xc
mov ecx, ebx
push str.port
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f150
test al, al
je 0x413cb7
push str.port
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042e750
mov esi, eax
jmp 0x413cc6
mov esi, dword [ebp - 0xa64]
test esi, esi
cmove esi, dword [ebp - 0xa70]
push esi
lea eax, [ebp - 0xa7c]
push eax
push dword [ebp - 0xa6c]
mov byte [ebp - 0xa5d], 0
call fcn.00412b10
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xa84], eax
test ecx, ecx
jne 0x413d91
push eax
push eax
push 3
push eax
push eax
push esi
push dword [ebp - 0xa7c]
push dword [ebp - 0xab4]
call dword [sym.imp.WININET.dll_InternetConnectA]
mov ecx, eax
mov dword [ebp - 0xa84], ecx
test ecx, ecx
jne 0x413d69
push str.InternetConnect_Failed
lea ecx, [ebp - 0xa6c]
call fcn.00401b30
push eax
push edi
mov byte [ebp - 4], 6
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa6c]
call fcn.00402850
lea ecx, [ebp - 0xa80]
call fcn.00402850
lea ecx, [ebp - 0xa90]
call fcn.00402850
lea ecx, [ebp - 0xa7c]
call fcn.00402850
mov eax, edi
jmp 0x415da7
mov eax, dword [ebp - 0xaa8]
test eax, eax
jne 0x413d7c
mov byte [ebp - 0xa5d], 1
jmp 0x413d91
push ecx
push esi
lea ecx, [ebp - 0xa7c]
push ecx
push dword [ebp + 0x1c]
push eax
call fcn.00416350
add esp, 0x14
cmp byte [ebp - 0xa85], 0
mov eax, 0x80400200
mov ecx, 0x80600200
cmovne eax, ecx
or eax, 0xc000
cmp byte [ebp - 0xa71], 0
mov dword [ebp - 0xa64], eax
je 0x413dc4
or eax, 0x803080
mov dword [ebp - 0xa64], eax
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa98], eax
push str.method
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x413e41
push str.method
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0xa98]
mov byte [ebp - 4], 8
call fcn.00402970
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 7
call fcn.00402850
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xaa4], edi
push str.version
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x413ec4
push str.version
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0xaa4]
mov byte [ebp - 4], 0xa
call fcn.00402970
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 9
call fcn.00402850
mov edi, dword [ebp - 0xaa4]
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xaa0], esi
push str.referer
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x413f47
push str.referer
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0xc
call fcn.00402970
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 0xb
call fcn.00402850
mov esi, dword [ebp - 0xaa0]
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0xa94], ebx
mov ecx, dword [ebp - 0xab8]
push str.acceptTypes
mov byte [ebp - 4], 0xd
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x413fd2
mov ecx, dword [ebp - 0xab8]
push str.acceptTypes
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0xa94]
mov byte [ebp - 4], 0xe
call fcn.00402970
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 0xd
call fcn.00402850
mov ebx, dword [ebp - 0xa94]
xor ecx, ecx
cmp dword [ebx - 0xc], ecx
mov eax, ebx
cmove eax, ecx
mov dword [ebp - 0xb10], eax
xor eax, eax
mov dword [ebp - 0xb0c], ecx
cmp dword [esi - 0xc], eax
mov ebx, esi
cmove ebx, eax
cmp dword [edi - 0xc], eax
push 1
push dword [ebp - 0xa64]
mov edx, edi
cmove edx, eax
mov eax, dword [ebp - 0xa98]
xor esi, esi
cmp dword [eax - 0xc], esi
mov ecx, eax
lea eax, [ebp - 0xb10]
push eax
push ebx
push edx
push dword [ebp - 0xa90]
cmove ecx, esi
push ecx
push dword [ebp - 0xa84]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [ebp - 0xa70], eax
test eax, eax
jne 0x414067
push str.HttpOpenRequest_Failed
lea ecx, [ebp - 0xa6c]
call fcn.00401b30
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
mov byte [ebp - 4], 0xf
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa6c]
jmp 0x415d53
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xa8c], edi
mov ebx, dword [ebp - 0xab8]
push str.contentType
mov ecx, ebx
mov byte [ebp - 4], 0x10
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x41417a
push 0x491c64
lea ecx, [ebp - 0xa64]
call fcn.00401b30
lea eax, [ebp - 0xa64]
push eax
push str.contentType
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa9c]
push eax
call fcn.00452d60
add esp, 0x1c
mov esi, eax
push str.Content_Type:
lea ecx, [ebp - 0xaa8]
mov byte [ebp - 4], 0x12
call fcn.00401b30
push esi
push eax
lea eax, [ebp - 0xab4]
push eax
mov byte [ebp - 4], 0x13
call fcn.0041c800
add esp, 0xc
push eax
lea eax, [ebp - 0xa6c]
push eax
mov byte [ebp - 4], 0x14
call fcn.0041c800
add esp, 0xc
push eax
lea ecx, [ebp - 0xa8c]
mov byte [ebp - 4], 0x15
call fcn.00402970
lea ecx, [ebp - 0xa6c]
call fcn.00402850
lea ecx, [ebp - 0xab4]
call fcn.00402850
lea ecx, [ebp - 0xaa8]
call fcn.00402850
lea ecx, [ebp - 0xa9c]
call fcn.00402850
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x10
call fcn.00402850
mov edi, dword [ebp - 0xa8c]
push str.additionalRequestHeaders
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x41421f
push str.additionalRequestHeaders
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
mov eax, dword [eax]
lea ecx, [ebp - 0xa8c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x16
push eax
call fcn.004035a0
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 0x10
call fcn.00402850
mov edi, dword [ebp - 0xa8c]
lea eax, [edi - 0x10]
push eax
call fcn.00403ee0
add eax, 0x10
add esp, 4
mov dword [ebp - 0xa64], eax
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x17
call fcn.00416520
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x10
call fcn.00402850
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa9c], esi
push str.postData
mov ecx, ebx
mov byte [ebp - 4], 0x18
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x4142a2
push str.postData
mov ecx, ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa6c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0xa9c]
mov byte [ebp - 4], 0x19
call fcn.00402970
lea ecx, [ebp - 0xa6c]
mov byte [ebp - 4], 0x18
call fcn.00402850
mov esi, dword [ebp - 0xa9c]
lea eax, [esi - 0x10]
push eax
mov dword [ebp - 0xa68], eax
call fcn.00403ee0
lea ebx, [eax + 0x10]
add esp, 4
mov dword [ebp - 0xab0], ebx
cmp byte [ebp - 0xa85], 0
mov byte [ebp - 4], 0x1a
je 0x414302
push 4
lea eax, [ebp - 0xa64]
push eax
push 6
push dword [ebp - 0xa70]
mov dword [ebp - 0xa64], 0x2710
call dword [sym.imp.WININET.dll_InternetSetOptionA]
push 4
lea eax, [ebp - 0xa64]
push eax
push 5
push dword [ebp - 0xa70]
call dword [sym.imp.WININET.dll_InternetSetOptionA]
mov esi, dword [esi - 0xc]
xor ecx, ecx
cmp dword [edi - 0xc], ecx
mov eax, edi
cmove eax, ecx
mov ecx, 1
sub ecx, dword [ebx - 4]
mov dword [ebp - 0xa6c], eax
mov eax, dword [ebx - 8]
or eax, ecx
jge 0x414337
push 0
lea ecx, [ebp - 0xab0]
call fcn.00407d40
mov ebx, dword [ebp - 0xab0]
push esi
mov esi, dword [ebp - 0xa70]
push ebx
push dword [edi - 0xc]
push dword [ebp - 0xa6c]
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
jne 0x414665
lea eax, [ebp - 0xab4]
push eax
call fcn.00456540
add esp, 4
mov byte [ebp - 4], 0x1b
call fcn.00416db0
test al, al
jne 0x414400
mov edi, dword [0x4af2c0]
mov eax, edi
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
mov esi, 0x84
mov dword [ebp - 0xaa8], ecx
mov dword [ebp - 0xab8], eax
test eax, eax
jle 0x4143e9
mov eax, edi
cdq
and edx, 3
lea edi, [edx + eax]
mov eax, dword [ebp - 0xab8]
sar edi, 2
xor edx, edx
mov dword [ebp - 0xa64], eax
test edi, edi
jle 0x4143d2
mov eax, edx
mov ecx, edi
lea ecx, [ecx]
add esi, eax
dec eax
dec ecx
jne 0x4143c0
mov eax, dword [ebp - 0xa64]
mov ecx, dword [ebp - 0xaa8]
add edx, ecx
dec eax
mov dword [ebp - 0xa64], eax
jne 0x4143b5
mov eax, dword [ebp - 0xab8]
mov edi, dword [0x4af2c0]
inc ecx
mov dword [ebp - 0xaa8], ecx
cmp ecx, esi
jl 0x414397
mov edi, dword [ebp - 0xa8c]
mov esi, dword [ebp - 0xa70]
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
mov edx, dword [0x4af2c0]
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 0x11
jne 0x41444b
mov ebx, dword [0x4af2c0]
xor esi, esi
mov edi, ebx
inc esi
dec edi
cmp esi, 0x79
jb 0x414432
mov edi, dword [ebp - 0xa8c]
mov ebx, dword [ebp - 0xab0]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp byte [ebp - 0xa5d], 0
je 0x41445c
push dword [ebp - 0xa84]
call esi
push str.HttpSendRequest_Failed_with:
lea ecx, [ebp - 0xaa8]
call fcn.00401b30
lea ecx, [ebp - 0xab4]
push ecx
push eax
lea eax, [ebp - 0xa6c]
push eax
mov byte [ebp - 4], 0x1c
call fcn.0041c800
push eax
push dword [ebp - 0xaac]
mov byte [ebp - 4], 0x1d
call fcn.00413240
mov edx, dword [ebp - 0xa6c]
add edx, 0xfffffff0
or esi, 0xffffffff
add esp, 0x14
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 0x1c
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4144c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xaa8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1b
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4144ea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xab4]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41450d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 0x18
lea eax, [ebx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41452a
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa68]
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41454a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edi + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x414567
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa94]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41458a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xaa0]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4145ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xaa4]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4145d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa98]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4145f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa80]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x414616
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa90]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x414639
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa7c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x41465a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xaac]
jmp 0x415da7
mov ebx, dword [ebp - 0xab8]
push ebx
call fcn.004162d0
add esp, 4
test al, al
jne 0x414805
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
mov eax, dword [0x4af2c0]
imul eax, eax
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x414699
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 3
jne 0x4146c0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [0x4af2c0]
mov edx, 7
test eax, eax
cmove ecx, edx
mov dword [0x4af2c0], ecx
cmp byte [ebp - 0xa5d], 0
je 0x4146d1
push dword [ebp - 0xa84]
call esi
push 0
lea ecx, [ebp - 0xadc]
call fcn.0042daf0
push 1
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x1e
call fcn.0042dbf0
lea eax, [ebp - 0xacc]
push eax
push str.result
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x1f
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x1e
call fcn.0042dd80
push str.no_response_needed
lea ecx, [ebp - 0xacc]
call fcn.0042dab0
lea eax, [ebp - 0xacc]
push eax
push str.content
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x20
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x1e
call fcn.0042dd80
mov ecx, dword [ebp - 0xaac]
lea eax, [ebp - 0xadc]
push eax
call fcn.0042d8b0
lea ecx, [ebp - 0xadc]
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 0x1a
call fcn.0042dd80
lea ecx, [ebp - 0xab0]
call fcn.00402850
lea ecx, [ebp - 0xa9c]
call fcn.00402850
lea ecx, [ebp - 0xa8c]
call fcn.00402850
lea ecx, [ebp - 0xa94]
call fcn.00402850
lea ecx, [ebp - 0xaa0]
call fcn.00402850
lea ecx, [ebp - 0xaa4]
call fcn.00402850
lea ecx, [ebp - 0xa98]
call fcn.00402850
lea ecx, [ebp - 0xa80]
call fcn.00402850
lea ecx, [ebp - 0xa90]
call fcn.00402850
lea ecx, [ebp - 0xa7c]
call fcn.00402850
mov eax, dword [ebp - 0xaac]
jmp 0x415da7
push 0x400
lea eax, [ebp - 0x817]
push 0
push eax
mov byte [ebp - 0x818], 0
call fcn.00462e00
add esp, 0xc
mov dword [ebp - 0xb04], 0x400
push str.Wininet.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
jne 0x414884
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
cmp byte [ebp - 0xa5d], 0
je 0x414855
push dword [ebp - 0xa84]
call esi
push str.HttpQueryInfo_Failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov byte [ebp - 4], 0x21
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa68]
jmp 0x415d32
push str.HttpQueryInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x414980
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
mov ebx, dword [0x4af2c0]
lea ecx, [ebx + 1]
lea eax, [ebx + 2]
imul eax, ecx
imul eax, ebx
cdq
mov ecx, 0x15
idiv ecx
cmp edx, 0x11
jne 0x414956
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xa68], eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xa6c], eax
mov eax, ebx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 0xab4], eax
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xa64], 0
mov dword [ebp - 0xaa8], eax
lea ecx, [ebp - 0x9db]
lea esp, [esp]
mov eax, dword [0x4af2c0]
mov bl, al
sub bl, byte [ebp - 0xa64]
mov esi, 1
mov edi, 9
add ecx, 5
inc esi
dec edi
jne 0x414937
mov eax, dword [ebp - 0xa64]
inc eax
mov dword [ebp - 0xa64], eax
cmp eax, 0xa
jl 0x414920
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp byte [ebp - 0xa5d], 0
je 0x414967
push dword [ebp - 0xa84]
call esi
push str.HttpQueryInfo_Failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov byte [ebp - 4], 0x22
jmp 0x414869
push 0
lea ecx, [ebp - 0xb04]
push ecx
lea ecx, [ebp - 0x818]
push ecx
push 0x13
push esi
call eax
test eax, eax
jne 0x414a17
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call edi
call fcn.00416e10
test al, al
jne 0x4149ed
mov esi, dword [0x4af2c0]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004601e0
push eax
call fcn.0046208f
add esp, 8
cmp byte [ebp - 0xa5d], 0
je 0x4149fe
push dword [ebp - 0xa84]
call edi
push str.HttpQueryInfo_Failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov byte [ebp - 4], 0x23
jmp 0x414869
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0xa78]
call fcn.00401bd0
push str.acceptedStatusCodes
mov ecx, ebx
mov byte [ebp - 4], 0x24
call fcn.0042e0f0
mov esi, eax
mov ecx, esi
call fcn.0042f110
mov ecx, esi
test al, al
je 0x414b57
xor edi, edi
call fcn.0042f540
test eax, eax
jle 0x414cf1
jmp 0x414a60
push edi
mov ecx, esi
call fcn.0042e050
mov ecx, eax
call fcn.0042f1e0
push edi
mov ecx, esi
test al, al
je 0x414ab4
call fcn.0042e050
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa68]
push eax
call fcn.00452d60
push eax
lea eax, [ebp - 0xa78]
push eax
call fcn.00411520
add esp, 0x24
lea ecx, [ebp - 0xa68]
jmp 0x414b33
call fcn.0042e050
mov ecx, eax
call fcn.0042f150
test al, al
je 0x414b42
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xab4], eax
push edi
mov ecx, esi
mov byte [ebp - 4], 0x25
call fcn.0042e050
mov ecx, eax
call fcn.0042e750
push eax
lea eax, [ebp - 0xab4]
push eax
lea eax, [ebp - 0xaa8]
push eax
call fcn.0041c880
add esp, 0xc
lea ecx, [ebp - 0xab4]
mov byte [ebp - 4], 0x24
call fcn.00402850
lea eax, [ebp - 0xaa8]
push eax
lea eax, [ebp - 0xa78]
push eax
call fcn.00411520
add esp, 8
lea ecx, [ebp - 0xaa8]
mov bl, al
call fcn.00402850
test bl, bl
jne 0x414d5e
mov ecx, esi
inc edi
call fcn.0042f540
cmp edi, eax
jl 0x414a60
jmp 0x414cf1
call fcn.0042f1c0
test al, al
je 0x414cd7
mov ecx, esi
xor edi, edi
call fcn.0042f540
test eax, eax
jle 0x414cf1
jmp 0x414b80
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xab4], eax
push edi
lea eax, [ebp - 0xab4]
push eax
lea eax, [ebp - 0xa64]
push eax
mov byte [ebp - 4], 0x26
call fcn.0041c880
add esp, 0xc
lea ecx, [ebp - 0xab4]
mov byte [ebp - 4], 0x28
call fcn.00402850
push dword [ebp - 0xa64]
mov ecx, esi
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
push dword [ebp - 0xa64]
mov ecx, esi
test al, al
je 0x414c1e
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa68]
push eax
call fcn.00452d60
push eax
lea eax, [ebp - 0xa78]
push eax
call fcn.00411520
add esp, 0x24
lea ecx, [ebp - 0xa68]
jmp 0x414c9a
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f150
test al, al
je 0x414ca5
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xaa8], eax
push dword [ebp - 0xa64]
mov ecx, esi
mov byte [ebp - 4], 0x29
call fcn.0042e0f0
mov ecx, eax
call fcn.0042e750
push eax
lea eax, [ebp - 0xaa8]
push eax
lea eax, [ebp - 0xa6c]
push eax
call fcn.0041c880
add esp, 0xc
lea ecx, [ebp - 0xaa8]
call fcn.00402850
lea eax, [ebp - 0xa6c]
push eax
lea eax, [ebp - 0xa78]
push eax
call fcn.00411520
add esp, 8
lea ecx, [ebp - 0xa6c]
mov bl, al
call fcn.00402850
test bl, bl
jne 0x414cc6
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x24
call fcn.00402850
mov ecx, esi
inc edi
call fcn.0042f540
cmp edi, eax
jl 0x414b80
jmp 0x414cf1
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x24
call fcn.00402850
jmp 0x414ced
lea eax, [ebp - 0xa78]
push 0x49167c
push eax
call fcn.00402c00
add esp, 8
mov bl, al
test bl, bl
jne 0x414d5e
push dword [ebp - 0xa70]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
cmp byte [ebp - 0xa5d], 0
je 0x414d10
push dword [ebp - 0xa84]
call esi
push dword [ebp - 0xa78]
lea ecx, [ebp - 0x89c]
call fcn.004129b0
push dword [eax]
mov byte [ebp - 4], 0x2a
call fcn.00461e54
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
call fcn.00413350
mov eax, dword [ebp - 0x89c]
lea ecx, [ebp - 0x898]
add esp, 0xc
cmp eax, ecx
je 0x415d2c
push eax
call fcn.00461ea4
add esp, 4
jmp 0x415d2c
mov ebx, dword [ebp - 0xa70]
push 0
lea eax, [ebp - 0xaec]
push eax
push 0
push 0x16
push ebx
mov dword [ebp - 0xaec], 0
call fcn.00416f60
mov eax, dword [0x4adbb8]
add esp, 0x14
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xabc], eax
cmp dword [ebp - 0xaec], 0
mov byte [ebp - 4], 0x2b
je 0x414ea4
mov edi, dword [0x4af2c0]
mov eax, edi
imul eax, edi
cdq
mov ecx, 0xf
idiv ecx
cmp edx, 0xc
jne 0x414e2e
mov eax, edi
cdq
sub eax, edx
xor ecx, ecx
mov ebx, eax
sar ebx, 1
mov esi, 0xbd
mov dword [ebp - 0xa6c], ecx
mov dword [ebp - 0xa68], ebx
nop
test ebx, ebx
jle 0x414e1d
mov eax, edi
cdq
and edx, 3
lea edi, [edx + eax]
sar edi, 2
xor edx, edx
test edi, edi
jle 0x414e0c
mov eax, edx
mov ecx, edi
lea ebx, [ebx]
add esi, eax
dec eax
dec ecx
jne 0x414e00
mov ecx, dword [ebp - 0xa6c]
add edx, ecx
dec ebx
jne 0x414df2
mov ebx, dword [ebp - 0xa68]
mov edi, dword [0x4af2c0]
inc ecx
mov dword [ebp - 0xa6c], ecx
cmp ecx, esi
jl 0x414de0
mov ebx, dword [ebp - 0xa70]
push dword [ebp - 0xaec]
call fcn.004601e0
mov esi, eax
add esp, 4
test esi, esi
je 0x414ea4
push str.Wininet.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x414e70
push str.HttpQueryInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x414e70
push 0
lea ecx, [ebp - 0xaec]
push ecx
push esi
push 0x16
push ebx
call eax
push esi
lea ecx, [ebp - 0xa68]
call fcn.00401bd0
push eax
lea ecx, [ebp - 0xabc]
mov byte [ebp - 4], 0x2c
call fcn.00402970
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0x2b
call fcn.00402850
push esi
call fcn.0046208f
add esp, 4
cmp byte [ebp - 0xa85], 0
je 0x41531a
call fcn.00416d90
test al, al
jne 0x414ed0
call fcn.00461e71
mov ecx, dword [0x4af2c0]
cmp ecx, eax
jne 0x414ed0
dec ecx
mov dword [0x4af2c0], ecx
push 0
lea ecx, [ebp - 0xadc]
call fcn.0042daf0
lea eax, [ebp - 0xa78]
push 0x491bb0
push eax
mov byte [ebp - 4], 0x2d
call fcn.00402c30
add esp, 8
test al, al
je 0x414f8b
lea eax, [ebp - 0xa78]
push 0x491bb8
push eax
call fcn.00402c30
add esp, 8
test al, al
je 0x414f8b
lea eax, [ebp - 0xa78]
push 0x491bac
push eax
call fcn.00402c30
add esp, 8
test al, al
je 0x414f8b
lea eax, [ebp - 0xa78]
push 0x491bb4
push eax
call fcn.00402c30
add esp, 8
test al, al
je 0x414f8b
mov ecx, dword [ebp - 0xaac]
lea eax, [ebp - 0xadc]
push eax
call fcn.0042d8b0
lea ecx, [ebp - 0xadc]
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 0x2b
call fcn.0042dd80
lea ecx, [ebp - 0xabc]
call fcn.00402850
lea ecx, [ebp - 0xa78]
call fcn.00402850
jmp 0x41478c
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa70], eax
mov eax, dword [ebp - 0xabc]
add eax, 0xfffffff0
push eax
mov byte [ebp - 4], 0x2e
call fcn.00403ee0
add eax, 0x10
add esp, 4
mov dword [ebp - 0xa84], eax
lea ecx, [ebp - 0xa84]
mov byte [ebp - 4], 0x2f
call fcn.00405d10
mov esi, dword [ebp - 0xa84]
cmp dword [esi - 0xc], 0
jl 0x415298
push str.location:
push esi
call fcn.004627c2
mov edi, eax
add esp, 8
test edi, edi
je 0x415298
sub edi, esi
cmp edi, 0xffffffff
je 0x415298
push edi
push 0x491c64
lea ecx, [ebp - 0xa84]
call fcn.00404440
sub eax, edi
push eax
push edi
lea eax, [ebp - 0xa68]
push eax
lea ecx, [ebp - 0xa84]
call fcn.00405ec0
push eax
lea ecx, [ebp - 0xa70]
mov byte [ebp - 4], 0x30
call fcn.00402970
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0x2f
call fcn.00402850
mov ecx, dword [0x4af2c0]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x13
idiv ecx
mov eax, dword [0x4af974]
mov ecx, 0x5e06d45c
cmp edx, 7
cmove eax, ecx
mov dword [0x4af974], eax
mov eax, dword [ebp - 0xa70]
cmp dword [eax - 0xc], 0
jl 0x4152be
push str.http
push eax
call fcn.004627c2
mov edx, eax
add esp, 8
test edx, edx
je 0x4152be
mov ecx, dword [ebp - 0xa70]
sub edx, ecx
cmp edx, 0xffffffff
je 0x4152be
mov eax, dword [ecx - 0xc]
sub eax, edx
push eax
lea eax, [ebp - 0xa68]
push eax
lea ecx, [ebp - 0xa70]
call fcn.004164a0
push eax
lea ecx, [ebp - 0xa70]
mov byte [ebp - 4], 0x31
call fcn.00402970
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0x2f
call fcn.00402850
push 1
lea ecx, [ebp - 0xacc]
call fcn.0042dbf0
lea eax, [ebp - 0xacc]
push eax
push str.urlRedirected
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x32
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x2f
call fcn.0042dd80
lea eax, [ebp - 0xa80]
push eax
lea eax, [ebp - 0xa2c]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x33
call fcn.0042da10
lea eax, [ebp - 0xacc]
push eax
push str.requestUrl
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x34
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x33
call fcn.0042dd80
lea ecx, [ebp - 0xa2c]
mov byte [ebp - 4], 0x2f
call fcn.00401060
lea eax, [ebp - 0xa70]
push eax
lea eax, [ebp - 0xa14]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x35
call fcn.0042da10
lea eax, [ebp - 0xacc]
push eax
push str.redirectUrl
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x36
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x35
call fcn.0042dd80
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xa14]
call fcn.00401060
mov ecx, dword [0x4af2c0]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x17
idiv ecx
cmp edx, 0xf
jne 0x415228
lea eax, [ecx + 0x7d]
mov esi, 0x47
lea esp, [esp]
test esi, esi
je 0x415221
cdq
idiv esi
mov ecx, esi
mov eax, ecx
mov esi, edx
test ecx, ecx
jne 0x415210
add eax, esi
mov dword [0x4af2c0], eax
mov eax, dword [ebp - 0xa78]
mov edx, 1
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
jge 0x415250
push 0
lea ecx, [ebp - 0xa78]
call fcn.00407d40
mov eax, dword [ebp - 0xa78]
push eax
call fcn.00461e54
add esp, 4
lea ecx, [ebp - 0xacc]
push eax
call fcn.0042da50
lea eax, [ebp - 0xacc]
push eax
push str.statusCode
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x37
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x2f
call fcn.0042dd80
jmp 0x4152be
mov ecx, dword [0x4af2c0]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x17
idiv ecx
cmp edx, 1
jne 0x4152be
lea eax, [ebp - 0x8c4]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
mov ecx, dword [ebp - 0xaac]
lea eax, [ebp - 0xadc]
push eax
call fcn.0042d8b0
lea ecx, [ebp - 0xa84]
mov dword [ebp - 0xae0], 1
call fcn.00402850
lea ecx, [ebp - 0xa70]
call fcn.00402850
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x2b
call fcn.0042dd80
lea ecx, [ebp - 0xabc]
call fcn.00402850
lea ecx, [ebp - 0xa78]
call fcn.00402850
jmp 0x41478c
xor eax, eax
xor edi, edi
mov dword [ebp - 0xac8], eax
mov dword [ebp - 0xac4], edi
mov dword [ebp - 0xac0], eax
mov byte [ebp - 4], 0x38
mov dword [ebp - 0xaf0], edi
lea ebx, [ebx]
sub edi, eax
lea ecx, [ebp - 0xac8]
lea eax, [edi + 0x400]
push eax
call fcn.00416ee0
mov eax, dword [ebp - 0xac8]
lea ecx, [ebp - 0xaf0]
push ecx
push 0x400
add eax, edi
push eax
push ebx
mov dword [ebp - 0xaf0], 0
call dword [sym.imp.WININET.dll_InternetReadFile]
mov esi, dword [0x4af2c0]
mov ebx, eax
lea eax, [esi + 1]
imul eax, esi
cdq
mov ecx, 0x13
idiv ecx
cmp edx, 8
jne 0x4153b2
lea ecx, [edx - 7]
cmp esi, ecx
jle 0x4153ac
lea esp, [esp]
mov eax, esi
cdq
idiv ecx
inc ecx
add ecx, edx
cmp ecx, esi
jl 0x4153a0
mov dword [0x4af2c0], ecx
test ebx, ebx
je 0x415cc8
mov eax, dword [ebp - 0xaf0]
add eax, edi
push eax
lea ecx, [ebp - 0xac8]
call fcn.00416ee0
cmp dword [ebp - 0xaf0], 0
je 0x4153ee
mov edi, dword [ebp - 0xac4]
mov eax, dword [ebp - 0xac8]
mov ebx, dword [ebp - 0xa70]
jmp 0x415340
push 0x400
lea eax, [ebp - 0x413]
push 0
push eax
mov byte [ebp - 0x414], 0
call fcn.00462e00
add esp, 0xc
mov dword [ebp - 0xb08], 0x400
push str.Wininet.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x4154d5
push str.HttpQueryInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
call fcn.004553b0
test al, al
jne 0x4154db
mov edx, dword [0x4af2c0]
xor esi, esi
jmp 0x415450
mov ecx, esi
and ecx, 1
dec ecx
not ecx
and ecx, edx
mov eax, esi
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
inc esi
add edx, eax
cmp esi, 0x100
jl 0x415450
mov dword [0x4af2c0], edx
jmp 0x4154db
mov edi, dword [ebp - 0xae8]
mov ebx, dword [ebp - 0xa70]
push 0
lea eax, [ebp - 0xb08]
push eax
lea eax, [ebp - 0x414]
push eax
push 0x1d
push ebx
call edi
mov esi, 0xd
test eax, eax
je 0x415653
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0xa64]
call fcn.00401bd0
mov edx, dword [0x4af2c0]
mov byte [ebp - 4], 0x3a
lea eax, [edx + 2]
lea ecx, [edx + 1]
imul eax, ecx
imul eax, edx
cdq
idiv esi
cmp edx, 4
jne 0x415567
push 0x28
call fcn.004601e0
add esp, 4
mov edi, eax
xor esi, esi
call fcn.00461e71
add eax, dword [0x4af2c0]
inc esi
mov dword [edi + esi*4 - 4], eax
cmp esi, 0xa
jl 0x415541
mov eax, dword [edi + 0x24]
push edi
mov dword [0x4af2c0], eax
call fcn.0046208f
add esp, 4
lea eax, [ebp - 0xa64]
push str.gzip
push eax
call fcn.00402c00
add esp, 8
test al, al
je 0x415644
mov dword [ebp - 0xad8], 0
mov dword [ebp - 0xad4], 0
mov dword [ebp - 0xad0], 0
mov eax, dword [ebp - 0xac8]
mov ecx, dword [ebp - 0xac4]
lea edx, [ebp - 0xad8]
push edx
sub ecx, eax
push ecx
push eax
mov byte [ebp - 4], 0x3b
call fcn.00416c40
add esp, 0xc
test eax, eax
jne 0x415627
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
cmp byte [ebp - 0xa5d], 0
je 0x4155e2
push dword [ebp - 0xa84]
call esi
push str.gzip_decompression_failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
mov byte [ebp - 4], 0x3c
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa68]
call fcn.00402850
lea ecx, [ebp - 0xad8]
call fcn.00422960
lea ecx, [ebp - 0xa64]
jmp 0x415d11
lea eax, [ebp - 0xad8]
push eax
lea ecx, [ebp - 0xac8]
call fcn.00412a30
lea ecx, [ebp - 0xad8]
call fcn.00422960
lea ecx, [ebp - 0xa64]
mov byte [ebp - 4], 0x38
call fcn.00402850
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
cmp byte [ebp - 0xa5d], 0
je 0x41566d
push dword [ebp - 0xa84]
call esi
mov esi, dword [ebp - 0xab8]
xor bl, bl
push str.responseType
mov ecx, esi
mov byte [ebp - 0xa71], 0
mov dword [ebp - 0xa64], ebx
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x41571a
push str.responseType
mov ecx, esi
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa70]
push eax
call fcn.00452d60
lea eax, [ebp - 0xa70]
push str.base64
push eax
call fcn.00402c00
add esp, 0x24
test al, al
je 0x4156e8
mov byte [ebp - 0xa71], 1
jmp 0x41570f
lea eax, [ebp - 0xa70]
push str.binary
push eax
call fcn.00402c00
add esp, 8
movzx ebx, bl
test al, al
mov eax, 1
cmovne ebx, eax
mov dword [ebp - 0xa64], ebx
lea ecx, [ebp - 0xa70]
call fcn.00402850
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xae4], eax
cmp byte [ebp - 0xa71], 0
mov edi, dword [ebp - 0xac8]
mov byte [ebp - 4], 0x3d
je 0x4157ea
mov eax, dword [ebp - 0xac4]
sub eax, edi
push eax
lea eax, [ebp - 0xa68]
push edi
push eax
call fcn.00410f30
add esp, 0xc
push eax
lea ecx, [ebp - 0xae4]
mov byte [ebp - 4], 0x3e
call fcn.00402970
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0x3d
call fcn.00402850
lea eax, [ebp - 0xa6c]
push eax
call fcn.00420c30
push eax
lea eax, [ebp - 0xae4]
push eax
call fcn.00411520
add esp, 0xc
lea ecx, [ebp - 0xa6c]
mov bl, al
call fcn.00402850
test bl, bl
je 0x415914
push str.Base64_encoding_Failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
mov byte [ebp - 4], 0x3f
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa68]
call fcn.00402850
lea ecx, [ebp - 0xae4]
jmp 0x415d11
test bl, bl
jne 0x41591a
mov ebx, dword [ebp - 0xac4]
sub ebx, edi
cmp byte [ebx + edi - 1], 0
je 0x41581a
lea eax, [ebx + 1]
push eax
lea ecx, [ebp - 0xac8]
call fcn.00416ee0
mov edi, dword [ebp - 0xac8]
mov byte [ebx + edi], 0
mov eax, dword [ebp - 0xac4]
sub eax, edi
cmp eax, 3
jbe 0x415872
call fcn.00416eb0
test al, al
jne 0x415844
mov eax, dword [0x4af2c0]
test eax, eax
mov ecx, 1
cmove eax, ecx
mov dword [0x4af2c0], eax
cmp byte [edi], 0xef
jne 0x415872
cmp byte [edi + 1], 0xbb
jne 0x415872
cmp byte [edi + 2], 0xbf
jne 0x415872
lea eax, [edi + 3]
push eax
push edi
lea eax, [ebp - 0xae8]
push eax
lea ecx, [ebp - 0xac8]
call fcn.00416bf0
mov edi, dword [ebp - 0xac8]
push edi
lea ecx, [ebp - 0xa68]
call fcn.00401b30
push eax
lea ecx, [ebp - 0xae4]
mov byte [ebp - 4], 0x40
call fcn.00402970
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0x3d
call fcn.00402850
mov ebx, dword [0x4af2c0]
mov eax, ebx
imul eax, ebx
imul eax, ebx
cdq
mov ecx, 0xd
idiv ecx
cmp edx, 4
jne 0x4158d3
xor esi, esi
mov edi, ebx
lea esp, [esp]
inc esi
dec edi
cmp esi, 0x4c
jb 0x4158c0
mov edi, dword [ebp - 0xac8]
mov esi, dword [ebp - 0xab8]
call fcn.0041fc50
test al, al
jne 0x415914
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub ebx, ecx
xor ecx, ecx
lea eax, [ebx + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004601e0
push eax
call fcn.0046208f
add esp, 8
mov ebx, dword [ebp - 0xa64]
push str.outputFile
mov ecx, esi
mov byte [ebp - 0xa64], 0
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x415a30
push str.outputFile
mov ecx, esi
call fcn.0042e0f0
mov ecx, eax
call fcn.0042ea50
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401000
lea eax, [ebp - 0xa70]
push eax
call fcn.00452d60
add esp, 0x1c
mov eax, dword [ebp - 0xa70]
mov byte [ebp - 4], 0x41
cmp dword [eax - 0xc], 0
je 0x415a21
test bl, bl
je 0x4159db
push 0x491d50
push eax
lea eax, [ebp - 0xab8]
push eax
mov dword [ebp - 0xab8], 0
call fcn.00463367
add esp, 0xc
test eax, eax
jne 0x415a21
mov eax, dword [ebp - 0xab8]
test eax, eax
je 0x415a21
push eax
mov eax, dword [ebp - 0xac4]
sub eax, edi
push eax
push 1
push edi
call fcn.00463503
push dword [ebp - 0xab8]
call fcn.0046322c
add esp, 0x14
mov byte [ebp - 0xa64], 1
jmp 0x415a21
mov eax, dword [ebp - 0xae4]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00403ee0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea eax, [ebp - 0xa70]
push eax
call fcn.00412500
movzx ecx, byte [ebp - 0xa64]
mov esi, dword [ebp - 0xab8]
add esp, 8
test al, al
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 0xa64], cl
lea ecx, [ebp - 0xa70]
mov byte [ebp - 4], 0x3d
call fcn.00402850
push 0
lea ecx, [ebp - 0xb00]
call fcn.0042daf0
push 1
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x42
call fcn.0042dbf0
lea eax, [ebp - 0xadc]
push eax
push str.result
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x43
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x42
call fcn.0042dd80
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0xa14]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x44
call fcn.0042da10
lea eax, [ebp - 0xadc]
push eax
push str.content
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x45
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x44
call fcn.0042dd80
lea ecx, [ebp - 0xa14]
mov byte [ebp - 4], 0x42
call fcn.00401060
lea eax, [ebp - 0xabc]
push eax
lea eax, [ebp - 0xa2c]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x46
call fcn.0042da10
lea eax, [ebp - 0xadc]
push eax
push str.headers
push str.additionalInfo
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x47
call fcn.0042e010
mov ecx, eax
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x46
call fcn.0042dd80
lea ecx, [ebp - 0xa2c]
mov byte [ebp - 4], 0x42
call fcn.00401060
lea eax, [ebp - 0xa78]
push eax
lea eax, [ebp - 0xa5c]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x48
call fcn.0042da10
lea eax, [ebp - 0xadc]
push eax
push str.httpCode
push str.additionalInfo
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x49
call fcn.0042e010
mov ecx, eax
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x48
call fcn.0042dd80
lea ecx, [ebp - 0xa5c]
mov byte [ebp - 4], 0x42
call fcn.00401060
push str.empty
lea ecx, [ebp - 0xa44]
call fcn.00401000
push eax
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x4a
call fcn.0042da10
lea eax, [ebp - 0xadc]
push eax
push str.noData
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x4b
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x4a
call fcn.0042dd80
lea ecx, [ebp - 0xa44]
mov byte [ebp - 4], 0x42
call fcn.00401060
push str.outputFile
mov ecx, esi
call fcn.0042e0f0
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x415c82
push dword [ebp - 0xa64]
lea ecx, [ebp - 0xadc]
call fcn.0042dbf0
lea eax, [ebp - 0xadc]
push eax
push str.outputFileResult
lea ecx, [ebp - 0xb00]
mov byte [ebp - 4], 0x4c
call fcn.0042e010
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0xadc]
mov byte [ebp - 4], 0x42
call fcn.0042dd80
mov ecx, dword [ebp - 0xaac]
lea eax, [ebp - 0xb00]
push eax
call fcn.0042d8b0
lea ecx, [ebp - 0xb00]
mov dword [ebp - 0xae0], 1
mov byte [ebp - 4], 0x3d
call fcn.0042dd80
lea ecx, [ebp - 0xae4]
call fcn.00402850
lea ecx, [ebp - 0xac8]
call fcn.00422960
jmp 0x414f70
push dword [ebp - 0xa70]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
cmp byte [ebp - 0xa5d], 0
je 0x415ce7
push dword [ebp - 0xa84]
call esi
push str.InternetReadFile_Failed
lea ecx, [ebp - 0xa68]
call fcn.00401b30
mov ebx, dword [ebp - 0xaac]
push eax
push ebx
mov byte [ebp - 4], 0x39
call fcn.00413240
add esp, 8
lea ecx, [ebp - 0xa68]
call fcn.00402850
lea ecx, [ebp - 0xac8]
call fcn.00422960
lea ecx, [ebp - 0xabc]
call fcn.00402850
lea ecx, [ebp - 0xa78]
call fcn.00402850
lea ecx, [ebp - 0xab0]
call fcn.00402850
lea ecx, [ebp - 0xa9c]
call fcn.00402850
lea ecx, [ebp - 0xa8c]
call fcn.00402850
lea ecx, [ebp - 0xa94]
call fcn.00402850
lea ecx, [ebp - 0xaa0]
call fcn.00402850
lea ecx, [ebp - 0xaa4]
call fcn.00402850
lea ecx, [ebp - 0xa98]
call fcn.00402850
lea ecx, [ebp - 0xa80]
call fcn.00402850
lea ecx, [ebp - 0xa90]
call fcn.00402850
lea ecx, [ebp - 0xa7c]
call fcn.00402850
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00461234
mov esp, ebp
pop ebp
ret