Function at 0x403fa6
Capabilities:
Connect to http server
Delete file
Download and write a file
Move file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x62c
mov dword [ebp - 0x614], ecx
and dword [ebp - 0x4e8], 0
and dword [ebp - 8], 0
mov eax, dword [ebp - 0x614]
cmp dword [eax + 0x68], 0x1bb
jne 0x403fd6
mov dword [ebp - 8], 0x803000
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 0x614]
cmp dword [eax + 0x6c], 0
jne 0x404019
push str.Protocol_not_supported
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
cmp dword [ebp + 0xc], 0
je 0x404012
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov al, 1
jmp 0x404fd9
mov eax, dword [ebp - 0x614]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x4ec], eax
mov eax, dword [ebp - 0x614]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp - 0x614]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x4f4], eax
push 0
push 0
mov eax, dword [ebp - 0x614]
push dword [eax + 0x6c]
push dword [ebp - 0x4ec]
push dword [ebp - 0x4f0]
mov eax, dword [ebp - 0x614]
movzx eax, word [eax + 0x68]
push eax
push dword [ebp - 0x4f4]
mov eax, dword [ebp - 0x614]
push dword [eax]
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4040ba
push str.InternetConnect____failed
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
cmp dword [ebp + 0xc], 0
je 0x4040b3
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov al, 1
jmp 0x404fd9
and dword [ebp - 4], 0
mov eax, dword [ebp - 0x614]
add eax, 0x58
push eax
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x614]
add ecx, 0x50
call fcn.00408573
mov eax, dword [ebp - 0x614]
cmp dword [eax + 0x6c], 3
jne 0x404fb7
mov dword [ebp - 0x30], 0x409544
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], str.HEAD
xor eax, eax
inc eax
je 0x4041bf
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4f8], eax
push 0
push dword [ebp - 8]
lea eax, [ebp - 0x30]
push eax
push 0
push 0
push dword [ebp - 0x4f8]
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [ebp - 0x3c], eax
push 0
push 0
push 0
push 0
push dword [ebp - 0x3c]
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x40414e
and dword [ebp - 0x618], 0
jmp 0x40415a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x618], eax
mov eax, dword [ebp - 0x618]
mov dword [ebp - 4], eax
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x614]
call fcn.0040304f
cmp dword [ebp - 0x3c], 0
je 0x404184
push dword [ebp - 0x3c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
and dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x614]
call fcn.0040310c
mov ecx, dword [ebp - 0x614]
call fcn.0040324f
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0x195
je 0x4041af
cmp dword [ebp - 0x38], 0x190
jne 0x4041b8
mov dword [ebp - 0x28], 0x409540
jmp 0x4041ba
jmp 0x4041bf
jmp 0x4040fc
mov ecx, dword [ebp - 0x614]
call fcn.0040324f
mov dword [ebp - 0x1c], eax
and dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x1c]
cdq
push 0x64
pop ecx
idiv ecx
cmp eax, 2
jne 0x4042a4
push str.Content_Length
lea eax, [ebp - 0x494]
push eax
mov ecx, dword [ebp - 0x614]
call fcn.0040318d
mov dword [ebp - 0x4fc], eax
mov eax, dword [ebp - 0x4fc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x500], eax
mov ecx, dword [ebp - 0x500]
call fcn.0040875e
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x490]
mov dword [ebp - 0x504], eax
push dword [ebp - 0x504]
call fcn.00401eb5
pop ecx
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x614]
and dword [eax + 0x24], 0
cmp dword [ebp + 0xc], 0
je 0x4042a2
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
xor edx, edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
test eax, eax
jne 0x4042a2
mov byte [ebp - 0x495], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x508], eax
push dword [ebp - 0x508]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x495]
jmp 0x404fd9
jmp 0x4042fe
push dword [ebp - 0x1c]
push str.Request_returned_code__d
mov eax, dword [ebp - 0x614]
add eax, 0x18
push eax
call fcn.0040869d
add esp, 0xc
cmp dword [ebp + 0xc], 0
je 0x4042d7
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x496], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x50c], eax
push dword [ebp - 0x50c]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x496]
jmp 0x404fd9
push str.Content_Type:
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x614]
call fcn.0040318d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x510], eax
mov edx, str.html
mov ecx, dword [ebp - 0x510]
call fcn.004089cd
test eax, eax
jne 0x404369
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x514], eax
mov edx, 0x4095b4
mov ecx, dword [ebp - 0x514]
call fcn.004089cd
test eax, eax
jne 0x404369
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x518], eax
mov edx, str.plain
mov ecx, dword [ebp - 0x518]
call fcn.004089cd
test eax, eax
je 0x4043d7
mov eax, dword [ebp - 0x614]
and dword [eax + 0x24], 0
mov eax, dword [ebp - 0x614]
and dword [eax + 0x20], 0
cmp dword [ebp + 0xc], 0
je 0x404396
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 3
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x497], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x51c], eax
push dword [ebp - 0x51c]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x520], eax
push dword [ebp - 0x520]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x497]
jmp 0x404fd9
push dword [ebp + 8]
mov ecx, dword [ebp - 0x614]
add ecx, 0x10
call fcn.0040853c
mov ecx, dword [ebp + 8]
call fcn.00402a20
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], edx
or dword [ebp - 0x4e8], 1
push str.Last_Modified:
lea eax, [ebp - 0x4b0]
push eax
mov ecx, dword [ebp - 0x614]
call fcn.0040318d
mov dword [ebp - 0x524], eax
mov eax, dword [ebp - 0x524]
mov eax, dword [eax + 4]
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x528]
call fcn.004027c9
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a4], edx
lea edx, [ebp - 0x4a0]
lea ecx, [ebp - 0x4a8]
call fcn.00402798
movzx eax, al
test eax, eax
je 0x404477
mov ecx, dword [ebp + 8]
call fcn.004029d1
cmp dword [ebp - 0x34], eax
jne 0x404477
mov dword [ebp - 0x61c], 1
jmp 0x40447e
and dword [ebp - 0x61c], 0
mov al, byte [ebp - 0x61c]
mov byte [ebp - 0x498], al
mov eax, dword [ebp - 0x4e8]
and eax, 1
je 0x4044b4
and dword [ebp - 0x4e8], 0xfffffffe
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - 0x52c], eax
push dword [ebp - 0x52c]
call fcn.00401eb5
pop ecx
movzx eax, byte [ebp - 0x498]
test eax, eax
je 0x404620
push dword [ebp + 8]
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x24], ecx
cmp dword [ebp + 0xc], 0
je 0x404510
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
xor edx, edx
inc edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x404567
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x4b1], 1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x530], eax
push dword [ebp - 0x530]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x534], eax
push dword [ebp - 0x534]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4b1]
jmp 0x404fd9
cmp dword [ebp + 0xc], 0
je 0x40458b
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 3
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x4045e2
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x4b2], 1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x538], eax
push dword [ebp - 0x538]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x53c], eax
push dword [ebp - 0x53c]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4b2]
jmp 0x404fd9
mov byte [ebp - 0x4b3], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x540], eax
push dword [ebp - 0x540]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x544], eax
push dword [ebp - 0x544]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4b3]
jmp 0x404fd9
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x400
lea ecx, [ebp - 0x44]
call fcn.004084c7
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x548], eax
push dword [ebp + 8]
push dword [ebp - 0x548]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x54c], eax
push str..xdl_
push dword [ebp - 0x54c]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x550], eax
mov ecx, dword [ebp - 0x550]
call fcn.004029d1
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x554]
call fcn.00402a20
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b8], edx
push str.Last_Modified:
lea eax, [ebp - 0x4cc]
push eax
mov ecx, dword [ebp - 0x614]
call fcn.0040318d
mov dword [ebp - 0x558], eax
mov eax, dword [ebp - 0x558]
mov eax, dword [eax + 4]
mov dword [ebp - 0x55c], eax
mov ecx, dword [ebp - 0x55c]
call fcn.004027c9
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c0], edx
lea edx, [ebp - 0x4bc]
lea ecx, [ebp - 0x4c4]
call fcn.00402798
mov byte [ebp - 0x4b4], al
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x560], eax
push dword [ebp - 0x560]
call fcn.00401eb5
pop ecx
movzx eax, byte [ebp - 0x4b4]
test eax, eax
je 0x4048e9
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x34]
jne 0x4048e7
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x564], eax
push dword [ebp + 8]
push dword [ebp - 0x564]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push dword [ebp + 8]
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x24], ecx
cmp dword [ebp + 0xc], 0
je 0x40479a
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
xor edx, edx
inc edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x404806
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x4cd], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x568], eax
push dword [ebp - 0x568]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x56c], eax
push dword [ebp - 0x56c]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x570], eax
push dword [ebp - 0x570]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4cd]
jmp 0x404fd9
cmp dword [ebp + 0xc], 0
je 0x40482a
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 3
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x404896
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov byte [ebp - 0x4ce], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x574], eax
push dword [ebp - 0x574]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x578], eax
push dword [ebp - 0x578]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x57c], eax
push dword [ebp - 0x57c]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4ce]
jmp 0x404fd9
mov byte [ebp - 0x4cf], 0
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x580], eax
push dword [ebp - 0x580]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x584], eax
push dword [ebp - 0x584]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x588], eax
push dword [ebp - 0x588]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4cf]
jmp 0x404fd9
jmp 0x404902
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x58c], eax
push dword [ebp - 0x58c]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
and dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x590], eax
push 0
push dword [ebp - 8]
lea eax, [ebp - 0x30]
push eax
push 0
push 0
push dword [ebp - 0x590]
push 0x409540
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x4c], 0
je 0x404a61
mov dword [ebp - 0x598], 0x81
lea eax, [ebp - 0x458]
mov dword [ebp - 0x594], eax
mov eax, dword [ebp - 0x598]
dec eax
mov dword [ebp - 0x598], eax
js 0x40497c
push 0
mov ecx, dword [ebp - 0x594]
call fcn.004084c7
mov eax, dword [ebp - 0x594]
add eax, 8
mov dword [ebp - 0x594], eax
jmp 0x40494f
push dword [ebp - 0x4c]
push str.Range:_bytes_d__r_n
lea eax, [ebp - 0x458]
push eax
call fcn.0040869d
add esp, 0xc
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x59c], eax
push dword [ebp - 0x59c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x5a0], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x5a4], eax
push 0
push 0
push dword [ebp - 0x5a0]
push dword [ebp - 0x5a4]
push dword [ebp - 0x48]
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x4049e3
and dword [ebp - 0x620], 0
jmp 0x4049ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x620], eax
mov eax, dword [ebp - 0x620]
mov dword [ebp - 4], eax
mov dword [ebp - 0x5b0], 0x81
lea eax, [ebp - 0x458]
mov dword [ebp - 0x5ac], eax
push 8
pop eax
imul eax, dword [ebp - 0x5b0]
add eax, dword [ebp - 0x5ac]
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x5b0]
dec eax
mov dword [ebp - 0x5b0], eax
js 0x404a5f
mov eax, dword [ebp - 0x5ac]
sub eax, 8
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x5ac]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5a8], eax
push dword [ebp - 0x5a8]
call fcn.00401eb5
pop ecx
jmp 0x404a24
jmp 0x404a94
push 0
push 0
push 0
push 0
push dword [ebp - 0x48]
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x404a7f
and dword [ebp - 0x624], 0
jmp 0x404a8b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x624], eax
mov eax, dword [ebp - 0x624]
mov dword [ebp - 4], eax
push dword [ebp - 0x48]
mov ecx, dword [ebp - 0x614]
call fcn.0040304f
mov ecx, dword [ebp - 0x614]
call fcn.0040310c
mov ecx, dword [ebp - 0x614]
call fcn.0040324f
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xce
je 0x404ad1
cmp dword [ebp - 0x1c], 0xc8
jne 0x404f8d
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x5b4], eax
push 0
push 2
push 4
push 0
push 1
push 0x40000000
push dword [ebp - 0x5b4]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x484], eax
cmp dword [ebp - 0x4c], 0
je 0x404b14
push 0
push 0
push dword [ebp - 0x4c]
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [ebp - 0x34]
cdq
push 0x64
pop ecx
idiv ecx
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x46c], 0x1400000
cmp dword [ebp - 0x474], 0x1400000
jle 0x404b43
mov dword [ebp - 0x474], 0x1400000
push dword [ebp - 0x474]
lea ecx, [ebp - 0x480]
call fcn.004084c7
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x468], eax
and dword [ebp - 0x464], 0
and dword [ebp - 0x470], 0
push 0
lea ecx, [ebp - 0x475]
call fcn.00401c60
xor eax, eax
inc eax
je 0x404daf
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x5b8], eax
lea eax, [ebp - 0x464]
push eax
push dword [ebp - 0x474]
push dword [ebp - 0x5b8]
push dword [ebp - 0x48]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x404bb6
and dword [ebp - 0x628], 0
jmp 0x404bc2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x628], eax
mov eax, dword [ebp - 0x628]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x468]
add eax, dword [ebp - 0x464]
mov dword [ebp - 0x468], eax
push 0
lea ecx, [ebp - 0x48c]
call fcn.004084c7
push dword [ebp - 0x34]
push dword [ebp - 0x468]
push dword [ebp - 0x464]
push dword [ebp - 0x474]
push dword [ebp - 4]
push str.code:__d__requested__d_bytes__read__d_bytes__total:__d_of__d
lea eax, [ebp - 0x48c]
push eax
call fcn.0040869d
add esp, 0x1c
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x5bc], eax
push dword [ebp - 0x5bc]
lea ecx, [ebp - 0x475]
call fcn.00401d20
mov ecx, eax
call fcn.00401e0a
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x5c0], eax
push 0
lea eax, [ebp - 0x470]
push eax
push dword [ebp - 0x464]
push dword [ebp - 0x5c0]
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x404c74
and dword [ebp - 0x62c], 0
jmp 0x404c80
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 4], eax
push dword [ebp + 8]
mov ecx, dword [ebp - 0x614]
add ecx, 0x18
call fcn.0040853c
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x468]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x468]
cmp eax, dword [ebp - 0x34]
jne 0x404cfb
cmp dword [ebp + 0xc], 0
je 0x404cd9
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 3
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x5c4], eax
push dword [ebp - 0x5c4]
call fcn.00401eb5
pop ecx
jmp 0x404daf
cmp dword [ebp - 0x464], 0
jne 0x404d39
cmp dword [ebp + 0xc], 0
je 0x404d1d
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 4
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x5c8], eax
push dword [ebp - 0x5c8]
call fcn.00401eb5
pop ecx
jmp 0x404daf
cmp dword [ebp + 0xc], 0
je 0x404d5d
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
xor edx, edx
inc edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
movzx eax, al
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x404d92
mov eax, dword [ebp - 0x614]
add eax, 0x10
push eax
push 2
pop edx
mov ecx, dword [ebp + 0x10]
call dword [ebp + 0xc]
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x5cc], eax
push dword [ebp - 0x5cc]
call fcn.00401eb5
pop ecx
jmp 0x404daf
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x5d0], eax
push dword [ebp - 0x5d0]
call fcn.00401eb5
pop ecx
jmp 0x404b78
push str.Last_Modified:
lea eax, [ebp - 0x4e0]
push eax
mov ecx, dword [ebp - 0x614]
call fcn.0040318d
mov dword [ebp - 0x5d4], eax
mov eax, dword [ebp - 0x5d4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x5d8]
call fcn.004027c9
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4d4], edx
mov eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x460], eax
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp - 0x4dc]
mov dword [ebp - 0x5dc], eax
push dword [ebp - 0x5dc]
call fcn.00401eb5
pop ecx
lea eax, [ebp - 0x460]
push eax
push 0
push 0
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x468]
cmp eax, dword [ebp - 0x34]
jne 0x404ef9
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x5e0], eax
push dword [ebp + 8]
push dword [ebp - 0x5e0]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push 0x80
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov byte [ebp - 0x4e1], 0
lea ecx, [ebp - 0x475]
call fcn.00401cb8
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x5e4], eax
push dword [ebp - 0x5e4]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x5e8], eax
push dword [ebp - 0x5e8]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x5ec], eax
push dword [ebp - 0x5ec]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x5f0], eax
push dword [ebp - 0x5f0]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4e1]
jmp 0x404fd9
mov byte [ebp - 0x4e2], 1
lea ecx, [ebp - 0x475]
call fcn.00401cb8
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x5f4], eax
push dword [ebp - 0x5f4]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x5f8], eax
push dword [ebp - 0x5f8]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x5fc], eax
push dword [ebp - 0x5fc]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x600], eax
push dword [ebp - 0x600]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4e2]
jmp 0x404fd9
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x608], eax
push dword [ebp - 0x608]
call fcn.00401eb5
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x60c], eax
push dword [ebp - 0x60c]
call fcn.00401eb5
pop ecx
mov byte [ebp - 0x4e3], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x610], eax
push dword [ebp - 0x610]
call fcn.00401eb5
pop ecx
mov al, byte [ebp - 0x4e3]
leave
ret 0xc