Function at 0x40a5af
Capabilities:
Check http status code
Get session user name
Impersonate user
Initialize winhttp library
Prepare http request
Read file on windows
Read http header
Receive http response
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3c44
call fcn.0041128b
mov eax, dword [0x42104c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
or dword [ebp - 0x3b58], 0xffffffff
push ebx
mov ebx, dword [ebp + 0x24]
mov dword [ebp - 0x3b78], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x3b80], eax
mov eax, dword [ebp + 0x1c]
push 8
mov dword [ebp - 0x3b68], eax
xor eax, eax
pop ecx
lea edi, [ebp - 0x3c08]
rep stosd dword es:[edi], eax
xorps xmm0, xmm0
mov dword [ebp - 0x3b64], eax
mov dword [ebp - 0x3bc8], eax
mov dword [ebp - 0x3bc4], eax
mov dword [ebp - 0x3b70], eax
mov dword [ebp - 0x3b98], eax
mov dword [ebp - 0x3b5c], eax
movlpd qword [ebp - 0x3bb8], xmm0
mov dword [ebp - 0x3b6c], eax
mov dword [ebp - 0x3b74], eax
mov dword [ebp - 0x3bd0], pe_nt_image_headers32
mov dword [ebp - 0x3c08], 0x20
mov dword [ebp - 0x3c04], 1
call fcn.00408908
mov eax, dword [0x421e3c]
mov ecx, dword [eax]
lea edx, [ebp - 0x3b64]
push edx
push 0x401c54
push eax
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
js 0x40a6cc
mov esi, 0x25f8
push esi
lea eax, [ebp - 0x3b54]
push 0
push eax
call fcn.00411211
mov edi, dword [ebp - 0x3b80]
mov eax, dword [edi]
add esp, 0xc
lea ecx, [ebp - 0x3b54]
push ecx
push ebx
push 0
push edi
mov dword [ebp - 0x3b54], esi
mov dword [ebp - 0x3b50], 0x4000000
call dword [eax + 0x1c]
mov esi, eax
test esi, esi
js 0x40a6cc
mov eax, dword [edi]
push edi
call dword [eax + 0x18]
test eax, eax
je 0x40a782
mov esi, 0x80004004
mov edi, dword [ebp - 0x3b5c]
mov ebx, dword [ebp - 0x3b58]
mov ecx, dword [ebp - 0x3b80]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x64]
mov eax, dword [ebp - 0x3b6c]
test eax, eax
je 0x40a6fc
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test edi, edi
je 0x40a707
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov eax, dword [ebp - 0x3b98]
test eax, eax
je 0x40a718
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov eax, dword [ebp - 0x3b70]
test eax, eax
je 0x40a729
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
cmp ebx, 0xffffffff
je 0x40a735
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x3bc8], 0
je 0x40b2f3
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x40b2f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a76c
and esi, 0xffff
or esi, 0x80070000
push ebx
push ebx
push ebx
push ebx
push 0xc0000015
push esi
call fcn.00419706
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push dword [ebp - 0x3b78]
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, eax
lea eax, [ebp - 0x3bd0]
push eax
lea eax, [ebp - 0x104]
push eax
mov dword [ebp - 0x3bbc], ebx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
lea eax, [ebp - 0x104]
mov dword [ebp - 0x3c00], eax
lea eax, [ebp - 0x3c08]
push eax
push dword [ebp - 0x3b78]
call dword [sym.imp.USERENV.dll_LoadUserProfileA]
test eax, eax
je 0x40a7d7
mov dword [ebp - 0x3bc4], 1
push dword [ebp - 0x3b78]
push 0
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x40a809
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a803
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
xor ecx, ecx
inc ecx
mov dword [ebp - 0x3bc8], ecx
cmp ebx, 2
je 0x40aee0
cmp ebx, 3
je 0x40aee0
cmp ebx, 4
jne 0x40aed6
xor bl, bl
mov byte [ebp - 0x3b5d], bl
push 0x38
xor ebx, ebx
lea eax, [ebp - 0x3c40]
push ebx
push eax
mov dword [ebp - 0x3b7c], 0x824
call fcn.00411211
lea eax, [ebp - 0x30c]
mov dword [ebp - 0x3c34], eax
add esp, 0xc
lea eax, [ebp - 0x514]
mov dword [ebp - 0x3c18], eax
lea eax, [ebp - 0x3c44]
push eax
mov edi, 0x80000000
push edi
mov ecx, 0x104
push ebx
lea eax, [ebp - 0x25a4]
push eax
mov dword [ebp - 0x3c44], 0x3c
mov dword [ebp - 0x3c30], ecx
mov dword [ebp - 0x3c14], ecx
call dword [sym.imp.WINHTTP.dll_WinHttpCrackUrl]
test eax, eax
jne 0x40a8c5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a8bf
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40b2ec
lea eax, [ebp - 0x3b7c]
push eax
lea eax, [ebp - 0x155c]
push eax
push edi
lea eax, [ebp - 0x3c44]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCreateUrl]
test eax, eax
jne 0x40a905
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a8ff
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40b2ec
push ebx
push ebx
push ebx
push ebx
push 0x4019dc
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov ebx, eax
mov dword [ebp - 0x3b70], ebx
test ebx, ebx
jne 0x40a940
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a93a
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
xor eax, eax
mov dword [ebp - 0x3b94], eax
mov edi, eax
and dword [ebp - 0x3bc0], 0
and dword [ebp - 0x3b90], 0
mov dword [ebp - 0x3bcc], 4
test edi, edi
je 0x40a96d
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov eax, dword [ebp - 0x3b98]
test eax, eax
je 0x40a97e
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push 0
push 0
lea eax, [ebp - 0x30c]
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov ebx, eax
mov dword [ebp - 0x3b98], ebx
test ebx, ebx
jne 0x40a9bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a9b6
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x514]
push eax
push 0x401ce0
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov edi, eax
mov dword [ebp - 0x3b5c], edi
test edi, edi
jne 0x40aa01
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40a9fb
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
xor ecx, ecx
mov ebx, ecx
xor eax, eax
mov dword [ebp - 0x3b8c], ecx
lea edi, [ebp - 0x3b88]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x3ba8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edx, edx
inc edx
mov eax, ebx
mov dword [ebp - 0x3be8], edx
mov dword [ebp - 0x3be4], 3
mov dword [ebp - 0x3be0], ecx
mov dword [ebp - 0x3bdc], ecx
mov dword [ebp - 0x3bd8], ecx
mov dword [ebp - 0x3bd4], edx
mov edi, ecx
sub eax, ecx
je 0x40aaf2
dec eax
je 0x40aa6f
dec eax
jne 0x40ab6b
mov dword [ebp - 0x3b8c], edx
mov edi, edx
jmp 0x40ab54
lea eax, [ebp - 0x3ba8]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpGetIEProxyConfigForCurrentUser]
test eax, eax
je 0x40ab6b
cmp dword [ebp - 0x3ba0], 0
je 0x40ab6b
push 0x208
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x208
push 0
mov dword [ebp - 0x3b88], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x3b88]
mov dword [ebp - 0x3b84], eax
test ecx, ecx
je 0x40ab6b
test eax, eax
je 0x40ab6b
push 0xffffffffffffffff
push dword [ebp - 0x3ba0]
mov dword [ebp - 0x3b8c], 3
push 0x104
push ecx
call fcn.00411144
xor edi, edi
add esp, 0x10
inc edi
jmp 0x40ab54
lea eax, [ebp - 0x3ba8]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpGetIEProxyConfigForCurrentUser]
test eax, eax
je 0x40ab6b
cmp dword [ebp - 0x3ba8], 0
je 0x40ab6b
mov eax, dword [ebp - 0x3ba4]
test eax, eax
je 0x40ab23
or dword [ebp - 0x3be8], 2
mov dword [ebp - 0x3be0], eax
lea eax, [ebp - 0x3b8c]
push eax
lea eax, [ebp - 0x3be8]
push eax
lea eax, [ebp - 0x155c]
push eax
push dword [ebp - 0x3b70]
mov dword [ebp - 0x3bd4], 1
call dword [sym.imp.WINHTTP.dll_WinHttpGetProxyForUrl]
mov edi, eax
test edi, edi
je 0x40ab6b
push 0xc
lea eax, [ebp - 0x3b8c]
push eax
push 0x26
push dword [ebp - 0x3b70]
call dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
cmp dword [ebp - 0x3ba4], 0
je 0x40ab87
push dword [ebp - 0x3ba4]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebp - 0x3ba4], 0
cmp dword [ebp - 0x3ba0], 0
je 0x40aba3
push dword [ebp - 0x3ba0]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebp - 0x3ba0], 0
cmp dword [ebp - 0x3b9c], 0
je 0x40abbf
push dword [ebp - 0x3b9c]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebp - 0x3b9c], 0
mov ecx, dword [ebp - 0x3b88]
test ecx, ecx
je 0x40abda
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor ecx, ecx
mov dword [ebp - 0x3b88], ecx
jmp 0x40abdc
xor ecx, ecx
mov eax, dword [ebp - 0x3b84]
test eax, eax
je 0x40abf5
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor ecx, ecx
mov dword [ebp - 0x3b84], ecx
test edi, edi
mov edi, dword [ebp - 0x3b5c]
je 0x40ac16
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
jne 0x40ada0
xor ecx, ecx
inc ebx
cmp ebx, 3
jl 0x40aa05
mov bl, byte [ebp - 0x3b5d]
test bl, bl
jne 0x40ac32
test esi, esi
js 0x40a6d2
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
jne 0x40ac47
test esi, esi
js 0x40a6d2
lea eax, [ebp - 0x3b90]
push eax
lea eax, [ebp - 0x3bcc]
push eax
lea eax, [ebp - 0x3bc0]
push eax
push 0
push 0x20000013
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
jne 0x40ac8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40ac88
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
mov eax, dword [ebp - 0x3bc0]
cmp eax, 0x194
ja 0x40adb7
je 0x40ae1a
cmp eax, 0xc8
je 0x40adad
cmp eax, 0x12c
jbe 0x40ae10
cmp eax, 0x12f
ja 0x40adf8
and dword [ebp - 0x3b90], 0
lea eax, [ebp - 0x3b90]
push eax
lea eax, [ebp - 0x3b7c]
push eax
lea eax, [ebp - 0x155c]
push eax
push 0
push 0x33
push edi
mov dword [ebp - 0x3b7c], 0x824
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
jne 0x40ad1b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40ad15
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
lea eax, [ebp - 0x3c44]
push eax
push 0
push 0
lea eax, [ebp - 0x155c]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCrackUrl]
test eax, eax
jne 0x40ad57
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40ad51
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
lea eax, [ebp - 0x3b7c]
push eax
lea eax, [ebp - 0x155c]
push eax
push 0x80000000
lea eax, [ebp - 0x3c44]
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCreateUrl]
test eax, eax
jne 0x40ad9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40ad95
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6d2
xor eax, eax
inc eax
jmp 0x40adaf
mov bl, 1
mov byte [ebp - 0x3b5d], bl
jmp 0x40ac26
xor eax, eax
mov dword [ebp - 0x3b94], eax
jmp 0x40ade5
cmp eax, 0x198
je 0x40adda
cmp eax, 0x1f4
je 0x40ae1a
cmp eax, 0x1f5
jbe 0x40ae10
cmp eax, 0x1f7
jbe 0x40ae1a
cmp eax, 0x1f8
jne 0x40ae10
mov eax, dword [ebp - 0x3b94]
mov esi, 0x80070102
test esi, esi
jne 0x40ae24
test eax, eax
je 0x40ae2a
mov ebx, dword [ebp - 0x3b70]
jmp 0x40a94a
cmp eax, 0x191
je 0x40ae06
cmp eax, 0x193
jne 0x40ae10
mov esi, 0x80070005
jmp 0x40a6d2
mov esi, 0x8000ffff
jmp 0x40a6d2
mov esi, 0x80070002
jmp 0x40a6d2
js 0x40a6d2
lea eax, [ebp - 0x3bb0]
push eax
push edi
call fcn.00419f43
mov esi, eax
test esi, esi
js 0x40a6d2
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x40ae7b
mov eax, dword [ebp - 0x3bac]
cmp eax, dword [ecx + 4]
jb 0x40ae9a
jne 0x40ae5f
mov eax, dword [ebp - 0x3bb0]
cmp eax, dword [ecx]
jbe 0x40ae9a
mov ecx, dword [ebp - 0x3b80]
mov eax, dword [ecx]
push 0
push 0
push 0
push 0
push ecx
call dword [eax + 0x50]
xorps xmm0, xmm0
movlpd qword [ebp + 0x10], xmm0
lea eax, [ebp - 0x3bb8]
push eax
push edi
call fcn.00419ee9
mov esi, eax
test esi, esi
js 0x40a6d2
mov edi, dword [ebp + 0x10]
jmp 0x40aff6
xor edi, edi
cmp dword [ebp + 0x20], edi
jbe 0x40aecf
mov ebx, dword [ebp - 0x3b68]
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 3
push dword [ebx + edi*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc edi
cmp edi, dword [ebp + 0x20]
jb 0x40aea7
xor esi, esi
jmp 0x40a6cc
mov esi, 0x8007000f
jmp 0x40a6cc
mov eax, 0x8000080
cmp ebx, 2
jne 0x40aef3
cmp dword [0x421e48], 0
je 0x40af01
cmp ebx, 3
jne 0x40af06
cmp dword [0x421e50], 0
jne 0x40af06
mov eax, 0x28000080
push 0
push eax
push 3
push 0
push ecx
push 0x80000000
lea eax, [ebp - 0x25a4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0x3b58], ebx
cmp ebx, 0xffffffff
jne 0x40af4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40af47
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
lea eax, [ebp - 0x3bb0]
push eax
push ebx
call fcn.004178b4
mov esi, eax
test esi, esi
js 0x40a6cc
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x40af9e
mov eax, dword [ebp - 0x3bac]
cmp eax, dword [ecx + 4]
jb 0x40b0b1
jne 0x40af8a
mov eax, dword [ebp - 0x3bb0]
cmp eax, dword [ecx]
jbe 0x40b0b1
mov eax, dword [edi]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push edi
call dword [eax + 0x50]
xorps xmm0, xmm0
movlpd qword [ebp + 0x10], xmm0
lea eax, [ebp - 0x3bb8]
push eax
push ebx
call fcn.004171f2
mov esi, eax
test esi, esi
js 0x40a6cc
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
test edx, edx
jl 0x40aff9
jg 0x40afc5
test edi, edi
je 0x40aff9
push 0
push 0
push edx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x40aff6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40aff0
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
mov edx, dword [ebp + 0x14]
xor ebx, ebx
cmp dword [ebp + 0x20], ebx
jbe 0x40b037
mov eax, dword [ebp - 0x3b68]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax]
lea esi, [ebp - 0x3bb0]
push esi
push edx
push edi
push dword [ebp - 0x3bb4]
push dword [ebp - 0x3bb8]
push eax
call dword [ecx + 0x24]
mov esi, eax
test esi, esi
js 0x40a6cc
mov edx, dword [ebp + 0x14]
inc ebx
cmp ebx, dword [ebp + 0x20]
jb 0x40b000
cmp dword [ebp - 0x3bb8], 0
jne 0x40b0ef
cmp dword [ebp - 0x3bb4], 0
jne 0x40b0ef
xor edi, edi
cmp dword [ebp + 0x20], edi
jbe 0x40aecf
mov ebx, dword [ebp - 0x3b68]
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push dword [ebx + edi*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 2
push dword [ebx + edi*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc edi
cmp edi, dword [ebp + 0x20]
jb 0x40b062
jmp 0x40aecf
xor edi, edi
cmp dword [ebp + 0x20], edi
jbe 0x40b0e6
mov ebx, dword [ebp - 0x3b68]
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 3
push dword [ebx + edi*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc edi
cmp edi, dword [ebp + 0x20]
jb 0x40b0be
xor esi, esi
mov edi, esi
jmp 0x40a6d2
mov ebx, dword [ebp - 0x3bbc]
lea eax, [ebx - 1]
dec eax
je 0x40b118
dec eax
je 0x40b110
dec eax
je 0x40b108
mov edi, 0x10000
jmp 0x40b12e
mov edi, dword [0x421e5c]
jmp 0x40b11e
mov edi, dword [0x421e54]
jmp 0x40b11e
mov edi, dword [0x421e4c]
mov ecx, dword [0x421e40]
dec edi
lea eax, [ecx - 1]
not eax
add edi, ecx
and edi, eax
push 4
push 0x3000
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x3b6c], eax
test eax, eax
jne 0x40b296
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40b166
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
jmp 0x40b296
mov ecx, dword [ebp - 0x3b80]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x18]
test eax, eax
jne 0x40b2a3
cmp ebx, 2
je 0x40b1cf
cmp ebx, 3
je 0x40b1cf
lea eax, [ebp - 0x3b74]
push eax
push edi
push dword [ebp - 0x3b6c]
push dword [ebp - 0x3b5c]
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
jne 0x40b210
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40b1c7
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40a6cc
jmp 0x40b210
mov ebx, dword [ebp - 0x3b58]
push 0
lea eax, [ebp - 0x3b74]
push eax
push edi
push dword [ebp - 0x3b6c]
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40b210
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40b20a
and esi, 0xffff
or esi, 0x80070000
test esi, esi
js 0x40b2e1
mov eax, dword [ebp - 0x3b74]
xor ebx, ebx
test eax, eax
je 0x40b25a
cmp dword [ebp + 0x20], ebx
jbe 0x40b290
push eax
push dword [ebp - 0x3b6c]
mov eax, dword [ebp - 0x3b68]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push dword [eax + ebx*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc ebx
cmp ebx, dword [ebp + 0x20]
jae 0x40b290
mov eax, dword [ebp - 0x3b74]
jmp 0x40b221
cmp dword [ebp + 0x20], ebx
jbe 0x40b28d
mov eax, dword [ebp - 0x3b68]
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 2
push dword [eax + ebx*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc ebx
cmp ebx, dword [ebp + 0x20]
jb 0x40b25f
xor esi, esi
inc esi
mov ebx, dword [ebp - 0x3bbc]
test esi, esi
je 0x40b171
jmp 0x40aecf
xor edi, edi
cmp dword [ebp + 0x20], edi
jbe 0x40aecf
mov eax, dword [ebp - 0x3b68]
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push dword [eax + edi*4]
push dword [ebp - 0x3b64]
call fcn.0040fdc7
mov esi, eax
test esi, esi
js 0x40a6cc
inc edi
cmp edi, dword [ebp + 0x20]
jb 0x40b2ae
jmp 0x40aecf
mov edi, dword [ebp - 0x3b5c]
jmp 0x40a6d8
mov edi, ebx
jmp 0x40a6d2
cmp dword [ebp - 0x3bc4], 0
je 0x40b30e
push dword [ebp - 0x3bec]
push dword [ebp - 0x3b78]
call dword [sym.imp.USERENV.dll_UnloadUserProfile]
mov ecx, dword [ebp - 0x3b64]
test ecx, ecx
je 0x40b31e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00410f5c
leave
ret 0x20