Function at 0x41fe70
Capabilities:
Check if file exists
Create process on windows
Delete file
Get disk information
Get disk size
Get file attributes
Get file size
Hide graphical window
Manipulate console buffer
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d42b
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x10220
call fcn.0043c8d0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x4574c0]
mov esi, dword [0x4574c8]
push 0x10004
mov dword [ebp - 0x100b8], eax
lea eax, [ebp - 0x10078]
push 0
push eax
mov dword [ebp - 0x10120], esi
call fcn.0042a4e0
xor eax, eax
mov dword [ebp - 0x100c0], 0
add esp, 0xc
mov dword [ebp - 0x101c0], eax
mov dword [ebp - 0x101bc], eax
xorps xmm0, xmm0
mov dword [ebp - 0x10114], eax
mov dword [ebp - 0x10118], eax
push 0x44
push eax
mov dword [ebp - 0x1011c], eax
mov dword [ebp - 0x101a4], eax
mov dword [ebp - 0x101ac], eax
mov dword [ebp - 0x100bc], eax
mov dword [ebp - 0x100b4], eax
mov dword [ebp - 0x100b0], eax
lea eax, [ebp - 0x10230]
push eax
mov dword [ebp - 0x100c4], 0
mov dword [ebp - 0x100c8], 0
movups xmmword [ebp - 0x101d0], xmm0
mov dword [ebp - 0x101a8], 0x60000
call fcn.0042a4e0
add esp, 0xc
mov dword [ebp - 0x10230], 0x44
lea eax, [ebp - 0x10108]
push 0x30
push 0
push eax
call fcn.0042a4e0
mov ax, word [0x4574e0]
add esp, 0xc
xorps xmm0, xmm0
mov word [ebp - 0x1c], ax
xor edi, edi
mov dword [ebp - 0x1a], 0x5c003a
xor eax, eax
mov dword [ebp - 0x100d4], edi
push 0x30636
push edi
push dword [0x45764c]
mov word [ebp - 0x16], ax
mov dword [ebp - 0x10110], eax
mov dword [ebp - 0x100d0], eax
movq qword [ebp - 0x101d8], xmm0
movups xmmword [ebp - 0x100a0], xmm0
mov dword [ebp - 0x100cc], eax
movups xmmword [ebp - 0x10090], xmm0
movq qword [ebp - 0x10080], xmm0
movq qword [ebp - 0x101b4], xmm0
movq qword [ebp - 0x101e8], xmm0
movq qword [ebp - 0x101e0], xmm0
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x100a4], eax
test eax, eax
je 0x420047
push 0x300
push edi
push dword [0x45764c]
mov dword [ebp - 0x100e8], 0x20
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x100f0], eax
mov dword [ebp - 0x100e0], eax
test eax, eax
jne 0x420058
mov edx, dword [ebp - 0x100a4]
push edx
push eax
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x45771c], 8
xor al, al
jmp 0x421589
lea eax, [ebp - 0x10128]
mov dword [ebp - 0x10128], str.GUPX
push eax
push 0x104
push 0x457720
push 0x400
push 0
push dword [0x45631c]
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
sub esp, 8
lea ecx, [ebp - 0x101a0]
push 0x457720
push dword [0x45633c]
sub esp, 8
push 0x457720
call fcn.00402d80
lea ecx, [ebp - 0x101a0]
mov dword [ebp - 4], 0
call fcn.00402fd0
push 0x4037c0
push 0xfa
push 0x65
push dword [ebp - 0x10198]
lea eax, [ebp - 0x101a0]
mov dword [0x45754c], eax
call dword [sym.imp.USER32.dll_SetTimer]
movzx ecx, byte [ebp - 0x10162]
test eax, eax
lea eax, [ebp - 0x1010c]
mov dword [ebp - 0x1010c], 0
mov edx, 1
mov dword [ebp - 0x101b8], 0
push eax
cmovne ecx, edx
push 0x2000e
mov byte [ebp - 0x10162], cl
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x420150
lea eax, [ebp - 0x101b8]
push eax
push 2
push dword [ebp - 0x1010c]
call dword [sym.imp.ADVAPI32.dll_DuplicateToken]
push dword [ebp - 0x1010c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x101b8]
cmp dword [ebp - 0x100b8], 1
mov dword [0x45771c], 0
mov esi, dword [esi + 4]
mov dword [ebp - 0x100ec], eax
mov dword [ebp - 0x100f8], 0xffffffff
mov dword [ebp - 0x100f4], 0xffffffff
mov dword [ebp - 0x10124], 1
mov dword [ebp - 0x100ac], esi
jbe 0x420a9b
mov eax, dword [ebp - 0x1019c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x420a5a
mov eax, dword [ebp - 0x100e8]
cmp dword [ebp - 0x100e4], eax
jne 0x420201
add eax, eax
mov dword [ebp - 0x100e8], eax
lea eax, [eax + eax*2]
shl eax, 3
push eax
push dword [ebp - 0x100f0]
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov ecx, eax
mov dword [ebp - 0x100e0], ecx
test ecx, ecx
je 0x420a9b
mov eax, dword [ebp - 0x100e4]
mov dword [ebp - 0x100f0], ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x100e0], eax
cmp word [esi], 0x2f
jne 0x42050e
movzx eax, word [esi + 2]
cmp eax, 0x47
je 0x420219
cmp eax, 0x67
jne 0x42024e
movzx ecx, word [esi + 4]
cmp ecx, 0x55
je 0x420227
cmp ecx, 0x75
jne 0x42024e
movzx ecx, word [esi + 6]
cmp ecx, 0x50
je 0x420235
cmp ecx, 0x70
jne 0x42024e
movzx ecx, word [esi + 8]
cmp ecx, 0x58
je 0x420243
cmp ecx, 0x78
jne 0x42024e
cmp word [esi + 0xa], 0
je 0x420a0d
cmp eax, 0x41
je 0x420258
cmp eax, 0x61
jne 0x42027f
movzx ecx, word [esi + 4]
cmp ecx, 0x52
je 0x420266
cmp ecx, 0x72
jne 0x42027f
cmp word [esi + 6], 0
jne 0x42027f
cmp dword [0x4574d4], 0
je 0x421642
jmp 0x42050e
cmp eax, 0x41
je 0x42028d
cmp eax, 0x61
jne 0x420427
cmp word [esi + 4], 0x3d
jne 0x420427
lea ecx, [esi + 6]
mov byte [ebp - 0x100a5], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x10130], xmm0
test ecx, ecx
je 0x420412
movzx eax, word [ecx]
test ax, ax
je 0x420412
cmp ax, 9
je 0x42036d
cmp ax, 0x20
je 0x42036d
cmp ax, 0xd
je 0x42036d
cmp ax, 0xa
je 0x42036d
mov edx, 0xa0
cmp ax, dx
je 0x42036d
cmp ax, 0xc
je 0x42036d
cmp ax, 0xb
je 0x42036d
mov edx, 0x85
cmp ax, dx
je 0x42036d
mov edx, 0x2028
cmp ax, dx
je 0x42036d
mov edx, 0x2029
cmp ax, dx
je 0x42036d
mov edx, 0x202f
cmp ax, dx
je 0x42036d
mov edx, 0x1680
cmp ax, dx
je 0x42036d
mov edx, 0x180e
cmp ax, dx
je 0x42036d
mov edx, 0x1fff
cmp ax, dx
jbe 0x42034f
mov edx, 0x200c
cmp ax, dx
jb 0x42036d
mov edx, 0x3000
cmp ax, dx
je 0x42036d
mov edx, 0xfeff
cmp ax, dx
je 0x42036d
mov edx, 0x205f
cmp ax, dx
jne 0x420379
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x4202c1
mov dword [ebp - 0x100ac], ecx
cmp ax, 0x2b
je 0x420395
movzx edx, ax
cmp ax, 0x2d
jne 0x4203a2
mov byte [ebp - 0x100a5], 1
movzx edx, word [ecx + 2]
add ecx, 2
mov dword [ebp - 0x100ac], ecx
mov esi, dword [ebp - 0x10130]
cmp dx, 0x30
jb 0x4203f9
mov edi, dword [ebp - 0x1012c]
movzx edx, dx
cmp dx, 0x39
ja 0x4203f9
mov eax, esi
mov ecx, edi
shld ecx, eax, 2
shl eax, 2
add esi, eax
movzx eax, dx
cdq
adc edi, ecx
shld edi, esi, 1
add esi, esi
add esi, eax
mov eax, dword [ebp - 0x100ac]
adc edi, edx
sub esi, 0x30
sbb edi, 0
add eax, 2
mov dword [ebp - 0x100ac], eax
movzx eax, word [eax]
mov edx, eax
cmp eax, 0x30
jae 0x4203b7
mov eax, esi
neg eax
cmp byte [ebp - 0x100a5], 0
cmove eax, esi
or dword [ebp - 0x10110], eax
jmp 0x420a0d
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
or dword [ebp - 0x10110], eax
jmp 0x420a0d
cmp eax, 0x50
je 0x420435
cmp eax, 0x70
jne 0x42059d
cmp word [esi + 4], 0x3d
jne 0x42059d
cmp word [ebp - 0x100b4], 0
jne 0x42059d
lea ecx, [esi + 6]
call fcn.00405730
mov edi, eax
test edi, edi
je 0x420508
cmp dword [0x457638], 3
jne 0x4204f9
movzx eax, word [edi]
cmp eax, 0x55
je 0x42047e
cmp eax, 0x75
jne 0x4204f9
movzx eax, word [edi + 2]
cmp eax, 0x50
je 0x42048c
cmp eax, 0x70
jne 0x4204f9
movzx eax, word [edi + 4]
cmp eax, 0x58
je 0x42049a
cmp eax, 0x78
jne 0x4204f9
lea eax, [esi + 6]
mov dword [ebp - 0x100c4], eax
test eax, eax
je 0x4204d1
push 0x457630
mov edx, 0x7fff
mov ecx, eax
call fcn.00402470
test eax, eax
js 0x4204cb
movzx eax, word [0x457630]
mov dword [ebp - 0x100b4], eax
jmp 0x4204f9
mov eax, dword [ebp - 0x100c4]
mov dword [0x457630], 0
test eax, eax
je 0x4204ef
cmp word [eax], 0
mov dword [ebp - 0x100b4], 0x7fff
jne 0x4204f9
mov dword [ebp - 0x100b4], 0
push edi
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp - 0x100d4]
push ecx
lea eax, [ebp - 0x100d0]
mov ecx, esi
push eax
lea edx, [ebp - 0x100a4]
call fcn.00404830
add esp, 8
test al, al
je 0x420a0d
mov ecx, dword [ebp - 0x100e0]
mov ax, word [0x457638]
mov edx, dword [ebp - 0x100a4]
push 0
push 0x2000080
push 3
mov word [ecx + 4], ax
mov ecx, dword [ebp - 0x100d0]
mov eax, dword [ebp - 0x100e0]
sub ecx, edx
push 0
push 7
push 0x120089
sar ecx, 1
push edx
mov word [eax + 6], cx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4206f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x420a0d
cmp dword [0x4574d4], 0
je 0x421642
jmp 0x420a0d
cmp eax, 0x43
je 0x4205ab
cmp eax, 0x63
jne 0x42064e
cmp word [esi + 4], 0x3d
jne 0x42064e
cmp word [ebp - 0x100bc], 0
jne 0x42064e
lea ecx, [esi + 6]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x4205d4
cmp eax, 9
jne 0x4205d9
add ecx, 2
jmp 0x4205c7
test ax, ax
je 0x42050e
lea eax, [esi + 6]
mov dword [ebp - 0x100c0], eax
test eax, eax
je 0x42061c
push 0x457630
mov edx, 0x7fff
mov ecx, eax
call fcn.00402470
test eax, eax
js 0x420616
movzx eax, word [0x457630]
mov dword [ebp - 0x100bc], eax
jmp 0x42050e
mov eax, dword [ebp - 0x100c0]
mov dword [0x457630], 0
test eax, eax
je 0x42063f
cmp word [eax], 0
je 0x42063f
mov dword [ebp - 0x100bc], 0x7fff
jmp 0x42050e
mov dword [ebp - 0x100bc], 0
jmp 0x42050e
cmp eax, 0x46
je 0x42065c
cmp eax, 0x66
jne 0x42050e
cmp word [esi + 4], 0x3d
jne 0x42050e
cmp word [ebp - 0x100b0], 0
jne 0x42050e
lea ecx, [esi + 6]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x420685
cmp eax, 9
jne 0x42068a
add ecx, 2
jmp 0x420678
test ax, ax
je 0x42050e
lea edi, [esi + 6]
mov dword [ebp - 0x100d4], edi
test edi, edi
je 0x4206c7
push 0x457630
mov edx, 0x7fff
mov ecx, edi
call fcn.00402470
test eax, eax
js 0x4206c7
movzx eax, word [0x457630]
mov dword [ebp - 0x100b0], eax
jmp 0x42050e
mov dword [0x457630], 0
test edi, edi
je 0x4206ea
cmp word [edi], 0
je 0x4206ea
mov dword [ebp - 0x100b0], 0x7fff
jmp 0x42050e
mov dword [ebp - 0x100b0], 0
jmp 0x42050e
mov eax, dword [ebp - 0x100e0]
mov dword [ebp - 0x101b4], 0
push 0x23
push 8
and dword [eax], 0x7fffffff
mov eax, dword [ebp - 0x100e0]
and dword [eax], 0xbfffffff
lea eax, [ebp - 0x101b4]
push eax
lea eax, [ebp - 0x101d8]
push eax
push esi
call dword [0x4576d0]
test eax, eax
jns 0x420795
push 4
push 0x28
lea eax, [ebp - 0x100a0]
push eax
lea eax, [ebp - 0x101d8]
push eax
push esi
call dword [0x4576d0]
test eax, eax
js 0x420a06
mov edx, dword [ebp - 0x100a4]
mov eax, dword [ebp - 0x10080]
mov dword [ebp - 0x101b4], eax
mov ax, word [edx + 8]
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x4207a5
cmp eax, 2
je 0x4207a5
mov eax, dword [ebp - 0x100e0]
or dword [eax], 0x80000000
jmp 0x4207a5
test dword [ebp - 0x101b4], 0x400
jne 0x420a06
cmp dword [ebp - 0x100cc], 0
jne 0x420815
mov eax, dword [ebp - 0x100e0]
cmp dword [eax], 0
jge 0x4207c2
movzx eax, word [0x4574e0]
jmp 0x4207cc
mov eax, dword [ebp - 0x100a4]
movzx eax, word [eax + 8]
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x101e0]
push eax
lea eax, [ebp - 0x101e8]
push eax
lea eax, [ebp - 0x100f8]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x42080d
mov eax, dword [ebp - 0x100f8]
or eax, dword [ebp - 0x100f4]
je 0x42080d
mov dword [ebp - 0x100cc], 1
jmp 0x420815
xor eax, eax
mov dword [ebp - 0x100cc], eax
test byte [ebp - 0x101b4], 0x10
je 0x420898
push ecx
push 0x400d
push edi
mov edi, dword [ebp - 0x100a4]
lea edx, [ebp - 0x10108]
push edi
lea ecx, [ebp - 0x101a0]
call fcn.00404c20
add esp, 0x10
test al, al
jne 0x420a06
cmp dword [0x45771c], 0
je 0x420a06
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1019c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x42153a
cmp dword [0x45771c], 5
jne 0x420a0d
cmp dword [0x4574d4], eax
je 0x421642
mov dword [0x45771c], 5
jmp 0x420bda
mov eax, dword [ebp - 0x100e0]
mov edi, dword [ebp - 0x100a4]
cmp dword [eax], 0
jl 0x420909
movzx eax, word [eax + 6]
mov edx, edi
mov ecx, dword [ebp - 0x100ec]
push 0x120156
push eax
call fcn.00403fc0
add esp, 8
test al, al
jne 0x420909
cmp dword [0x4574d4], 0
je 0x420a3c
mov eax, dword [ebp - 0x100e0]
mov ecx, edi
xor edx, edx
movzx eax, word [eax + 6]
movzx edi, word [ecx + eax*2]
mov word [ecx + eax*2], dx
call fcn.00404090
test al, al
je 0x420889
mov eax, dword [ebp - 0x100e0]
mov edx, dword [ebp - 0x100a4]
movzx eax, word [eax + 6]
mov word [edx + eax*2], di
mov edi, edx
mov ecx, dword [ebp - 0x100ec]
mov edx, edi
push 0x12019f
call fcn.00403f10
add esp, 4
test al, al
jne 0x42093e
cmp dword [0x4574d4], 0
je 0x420a3c
mov ecx, edi
call fcn.00404090
test al, al
je 0x420889
mov eax, dword [ebp - 0x100e0]
add eax, 8
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov edx, esi
xor ecx, ecx
call fcn.0041fcc0
movzx ecx, al
mov eax, dword [ebp - 0x100e0]
shl ecx, 0x1e
xor ecx, dword [eax]
and ecx, 0x40000000
xor dword [eax], ecx
mov ecx, dword [ebp - 0x100e0]
test dword [ecx], 0x40000000
jne 0x420989
cmp dword [0x457638], 0
je 0x420a06
mov eax, dword [ecx + 8]
add dword [ebp - 0x10150], eax
mov eax, dword [ecx + 0xc]
adc dword [ebp - 0x1014c], eax
movzx eax, word [ecx + 4]
lea eax, [eax*2 + 2]
push eax
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x100e0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x100e0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x420a4b
movzx eax, word [eax + 4]
lea eax, [eax*2 + 2]
push eax
push edi
push ecx
call fcn.0043c9e0
add esp, 0xc
add dword [ebp - 0x10140], 1
adc dword [ebp - 0x1013c], 0
inc dword [ebp - 0x10108]
add dword [ebp - 0x100e0], 0x18
inc dword [ebp - 0x100e4]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10124]
mov ecx, dword [ebp - 0x10120]
inc eax
mov dword [ebp - 0x10124], eax
mov esi, dword [ecx + eax*4]
mov dword [ebp - 0x100ac], esi
cmp eax, dword [ebp - 0x100b8]
jae 0x420a9b
mov edi, dword [ebp - 0x100d4]
jmp 0x420194
mov dword [0x45771c], 5
jmp 0x421642
mov dword [0x45771c], 8
jmp 0x420bda
push 0x65
push dword [ebp - 0x10198]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp - 0x1019c]
push 0
push 0
push 0x44413c
mov byte [ebp - 0x10162], 0
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x1019c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x42153a
cmp dword [ebp - 0x10140], 0
je 0x42153a
push 0x65
push dword [ebp - 0x10198]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp - 0x1019c]
push 0
push 0
push 0x44413c
mov byte [ebp - 0x10162], 0
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x1019c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp byte [ebp - 0x10167], 0
je 0x420b21
mov eax, dword [ebp - 0x10194]
mov byte [ebp - 0x10167], 0
test eax, eax
je 0x420b21
push 0
push 0
push 0x40a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x50000000
push 0xfffffffffffffff0
push dword [ebp - 0x10194]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [0x4576b0]
lea esi, [eax + eax]
push esi
lea eax, [ebp - 0x70]
push 0x4574d8
push eax
call fcn.0043c9e0
movups xmm0, xmmword [str.Upx.exe]
mov ax, word [0x44cfb0]
add esp, 0xc
mov ecx, dword [ebp - 0x100c4]
test ecx, ecx
movups xmmword [ebp + esi - 0x70], xmm0
mov word [ebp + esi - 0x60], ax
lea eax, [ebp - 0x70]
cmovne eax, ecx
push eax
mov dword [ebp - 0x100cc], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x420c4f
cmp dword [0x4574d4], 0
je 0x421642
mov esi, dword [ebp - 0x10150]
lea eax, [ebp - 0x70]
mov edi, dword [ebp - 0x1014c]
lea ecx, [ebp - 0x101a0]
push eax
call fcn.0041f940
add esp, 4
test al, al
jne 0x420c24
mov eax, dword [0x45771c]
mov ecx, 2
test eax, eax
push 0
cmove eax, ecx
mov dword [0x45771c], eax
mov eax, dword [ebp - 0x1019c]
push 1
push str.Error:_Downloadin_Upx.exe
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov dword [ebp - 0x101a0], eax
cmp byte [ebp - 0x10162], 0
je 0x420bee
lea ecx, [ebp - 0x101a0]
call fcn.004036e0
sub esp, 8
lea ecx, [ebp - 0x101a0]
call fcn.00403080
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push dword [0x45771c]
lea ecx, [ebp - 0x101a0]
push 0x5dc
call fcn.00403330
jmp 0x42153a
sub esp, 8
lea ecx, [ebp - 0x101a0]
push 0
push 0
call fcn.00403110
xorps xmm0, xmm0
mov dword [ebp - 0x10150], esi
movlpd qword [ebp - 0x10148], xmm0
mov dword [ebp - 0x1014c], edi
jmp 0x420c5b
mov edi, dword [ebp - 0x1014c]
mov esi, dword [ebp - 0x10150]
mov eax, dword [ebp - 0x100bc]
test ax, ax
je 0x420ca7
mov edi, dword [ebp - 0x100a4]
movzx esi, ax
add esi, esi
push esi
push dword [ebp - 0x100c0]
push edi
call fcn.0043c9e0
mov eax, dword [0x44d004]
add esp, 0xc
add dword [ebp - 0x100bc], 2
mov dword [edi + esi], eax
mov ax, word [0x44d008]
mov word [edi + esi + 4], ax
mov edi, dword [ebp - 0x1014c]
mov esi, dword [ebp - 0x10150]
test edi, edi
jne 0x420cbc
cmp esi, 0x63
ja 0x420cbc
mov dword [ebp - 0x10138], 1
jmp 0x420ccd
push 0
push 0x64
push edi
push esi
call fcn.0043d1d0
mov dword [ebp - 0x10138], eax
mov dword [ebp - 0x10160], 1
mov dword [ebp - 0x1015c], 0
mov byte [ebp - 0x10161], 1
call dword [sym.imp.KERNEL32.dll_AllocConsole]
lea eax, [ebp - 0x101c0]
push eax
push 1
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
mov edi, eax
push 2
push edi
call esi
push 0
push edi
call esi
mov esi, dword [0x45754c]
xor eax, eax
mov dword [ebp - 0x10204], 1
mov word [ebp - 0x10200], ax
mov ecx, dword [esi + 0x60]
call fcn.00428880
push 0x14
push 0x457550
mov dword [ebp - 0x10130], eax
push dword [esi + 0x54]
push dword [esi + 0x50]
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
movq xmm0, qword [str.GUPX:]
mov dword [ebp - 0x1012c], eax
mov eax, dword [0x44d014]
mov dword [0x457728], eax
lea eax, [ebp - 0x10130]
push eax
push 0xfe
push 0x45772c
push 0x400
push 0
push dword [0x4563bc]
movq qword [0x457720], xmm0
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov eax, dword [ebp - 0x1019c]
push 0
push 0
push 0x457720
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x28]
mov dword [ebp - 0x101a0], eax
mov eax, dword [ebp - 0x1019c]
push 0
mov byte [ebp - 0x10161], 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov ecx, dword [ebp - 0x10140]
mov dword [ebp - 0x101a0], eax
mov eax, dword [ebp - 0x100f0]
mov dword [ebp - 0x100c0], ecx
mov dword [ebp - 0x100e0], eax
test ecx, ecx
je 0x421517
mov esi, dword [ebp - 0x10114]
mov edi, dword [ebp - 0x10118]
mov eax, dword [ebp - 0x1019c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x421517
mov eax, dword [ebp - 0x100e0]
push 0
push 1
movzx ecx, word [eax + 6]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x1019c]
push eax
push 2
push ecx
mov edx, dword [ecx]
call dword [edx + 0x28]
mov dword [ebp - 0x101a0], eax
mov eax, dword [ebp - 0x10148]
mov dword [ebp - 0x100d0], eax
mov eax, dword [ebp - 0x10144]
mov dword [ebp - 0x100c4], eax
xor eax, eax
mov dword [ebp - 0x100b4], eax
mov word [0x457540], ax
mov eax, dword [ebp - 0x100e0]
test dword [eax], 0x40000000
je 0x420e9b
mov ecx, dword [ebp - 0x100a4]
movq xmm0, qword [str.__d__]
movq qword [ecx], xmm0
mov ax, word [0x44d024]
mov word [ecx + 8], ax
mov ecx, 0xa
jmp 0x420ecc
mov ecx, dword [ebp - 0x100bc]
test cx, cx
je 0x420ead
movzx ecx, cx
add ecx, ecx
jmp 0x420ed2
mov ecx, dword [ebp - 0x100a4]
movups xmm0, xmmword [str.___best__]
movups xmmword [ecx], xmm0
mov ax, word [0x44d038]
mov word [ecx + 0x10], ax
mov ecx, 0x12
mov eax, dword [ebp - 0x100e0]
mov edx, dword [ebp - 0x100a4]
add edx, ecx
cmp dword [eax], 0
mov ecx, edx
mov dword [ebp - 0x100b0], edx
mov dword [ebp - 0x100a8], ecx
jge 0x42109b
mov eax, dword [0x44d03c]
lea ecx, [edx - 2]
mov dword [ecx], eax
add edx, 4
movzx eax, word [0x44d040]
mov word [ecx + 4], ax
add ecx, 6
movzx eax, word [0x4576b4]
add eax, eax
mov dword [ebp - 0x100b8], ecx
mov dword [ebp - 0x10120], eax
add eax, 0xfffffff8
push eax
mov eax, dword [0x4574d0]
add eax, 8
mov dword [ebp - 0x100b0], edx
push eax
push ecx
mov dword [0x457544], edx
call fcn.0043c9e0
mov ecx, dword [ebp - 0x100b8]
add esp, 0xc
mov edx, dword [ebp - 0x100e0]
add ecx, 0xfffffff8
mov eax, dword [ebp - 0x10120]
add eax, ecx
mov dword [ebp - 0x100b8], eax
movzx ecx, word [edx + 6]
mov ax, word [edx + 4]
sub ax, cx
mov si, ax
mov word [ebp - 0x100a6], ax
movzx eax, ax
mov dword [ebp - 0x100b4], esi
mov word [0x457540], si
lea eax, [eax*2 + 2]
push eax
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*2]
push eax
push dword [ebp - 0x100b8]
call fcn.0043c9e0
mov ecx, dword [ebp - 0x100b8]
add esp, 0xc
test byte [ebp - 0x10110], 2
movzx eax, si
mov esi, dword [ebp - 0x10114]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x100a8], ecx
jne 0x421081
mov eax, dword [ebp - 0x100b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x421064
mov ecx, dword [0x457544]
mov eax, dword [ebp - 0x100a8]
sub eax, ecx
sar eax, 1
movzx eax, ax
mov word [0x457540], ax
add eax, 0x1f
mov edx, dword [0x457540]
push eax
call fcn.00404280
mov ecx, eax
add esp, 4
mov eax, dword [0x457638]
mov word [0x457540], ax
mov dword [0x457544], ecx
push 0
lea edx, [ecx + eax*2]
movzx eax, word [0x4576b4]
add eax, 0xfffffffc
mov dword [ebp - 0x100a8], edx
push 1
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x1019c]
push eax
push 2
push ecx
mov edx, dword [ecx]
call dword [edx + 0x28]
movzx edx, word [0x457540]
mov dword [ebp - 0x101a0], eax
mov eax, dword [0x457544]
mov dword [ebp - 0x100b0], eax
mov dword [ebp - 0x100b4], edx
jmp 0x42107b
mov eax, dword [0x457544]
mov dword [ebp - 0x100b0], eax
mov ax, word [0x457540]
mov dword [ebp - 0x100b4], eax
mov ecx, dword [ebp - 0x100a8]
mov eax, dword [0x44ce0c]
mov dword [ecx], eax
mov ax, word [0x44ce10]
mov word [ecx + 4], ax
add ecx, 6
mov dword [ebp - 0x100a8], ecx
mov edx, dword [ebp - 0x100e0]
movzx eax, word [edx + 4]
lea eax, [eax*2 - 8]
push eax
mov eax, dword [edx + 0x10]
add eax, 8
push eax
push ecx
call fcn.0043c9e0
mov eax, dword [ebp - 0x100e0]
add esp, 0xc
cmp word [ebp - 0x100b4], 0
mov edx, dword [ebp - 0x100a8]
mov ecx, dword [ebp - 0x100b0]
movzx eax, word [eax + 4]
cmove ecx, edx
add eax, 0xfffffffc
mov dword [0x457544], ecx
cmp word [ebp - 0x100b4], 0
lea eax, [edx + eax*2]
mov dword [eax], 0x22
jne 0x421104
sub eax, ecx
sar eax, 1
mov word [0x457540], ax
lea eax, [ebp - 0x101d0]
push eax
lea eax, [ebp - 0x10230]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x100a4]
push dword [ebp - 0x100cc]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x421438
xor edi, edi
nop word [eax + eax]
lea eax, [ebp - 0x101a4]
push eax
push dword [ebp - 0x101d0]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x42116c
cmp dword [ebp - 0x101a4], 0x103
je 0x42116c
inc edi
cmp edi, 0xee6b2800
jb 0x421140
push dword [ebp - 0x101c8]
call dword [sym.imp.KERNEL32.dll_AttachConsole]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ecx, dword [ebp - 0x100e0]
mov edi, dword [ebp - 0x10118]
mov dword [0x45771c], 0
mov dword [ebp - 0x100c8], eax
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x100b8], 0
test ecx, ecx
jne 0x4211c1
cmp edx, 0x63
ja 0x4211c1
mov dword [ebp - 0x10124], 1
jmp 0x4211d2
push 0
push 0x64
push ecx
push edx
call fcn.0043d1d0
mov dword [ebp - 0x10124], eax
push 1
push dword [ebp - 0x101d0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x421318
mov eax, dword [ebp - 0x1019c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x4215a7
lea eax, [ebp - 0x1011c]
push eax
push esi
push 0x8002
lea eax, [ebp - 0x10078]
push eax
push dword [ebp - 0x100c8]
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterW]
test eax, eax
je 0x4211d2
cmp dword [ebp - 0x1011c], 0
je 0x4211d2
mov ecx, 0x7ffd
lea eax, [ebp - 0x10078]
cmp word [eax], 0x5b
jne 0x42124b
movzx edx, word [eax + 2]
cmp edx, 0x2e
je 0x421253
cmp edx, 0x2a
je 0x421253
add eax, 2
sub ecx, 1
jne 0x421237
cmp word [eax], 0x5b
mov dword [ebp - 0x100ac], eax
jne 0x4211d2
cmp ecx, 0x40
jbe 0x4211d2
add eax, 2
xor ecx, ecx
mov dword [ebp - 0x100ac], eax
cmp word [eax], 0x2a
jne 0x421295
nop dword [eax]
cmp ecx, 0x41
jae 0x42128f
add eax, 2
inc ecx
cmp word [eax], 0x2a
je 0x421280
mov dword [ebp - 0x100ac], eax
imul eax, ecx, 0x64
shr eax, 6
cmp eax, dword [ebp - 0x100b8]
je 0x4211d2
mov ecx, dword [ebp - 0x10124]
imul ecx, eax
push 0
push dword [ebp - 0x10138]
mov dword [ebp - 0x100b8], eax
mov eax, 0
add ecx, dword [ebp - 0x100d0]
mov dword [ebp - 0x10148], ecx
adc eax, dword [ebp - 0x100c4]
push eax
push ecx
mov dword [ebp - 0x10144], eax
call fcn.0043d1d0
mov dword [ebp - 0x10158], eax
mov dword [ebp - 0x10154], edx
cmp edx, dword [ebp - 0x1015c]
jb 0x4211d2
ja 0x421308
cmp eax, dword [ebp - 0x10160]
jbe 0x4211d2
lea ecx, [ebp - 0x101a0]
call fcn.004031a0
jmp 0x4211d2
push dword [ebp - 0x101d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x101cc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x1011c]
push eax
push dword [ebp - 0x101a8]
lea eax, [ebp - 0x10078]
push 0x8002
push eax
push dword [ebp - 0x100c8]
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputCharacterW]
mov ax, word [ebp - 0x10078]
cmp ax, 0x55
je 0x42136c
cmp ax, 0x75
jne 0x421438
mov ax, word [ebp - 0x10076]
cmp ax, 0x50
je 0x421383
cmp ax, 0x70
jne 0x421438
mov ax, word [ebp - 0x10074]
cmp ax, 0x58
je 0x42139a
cmp ax, 0x78
jne 0x421438
cmp word [ebp - 0x10072], 0x3a
jne 0x421438
cmp word [ebp - 0x10070], 0x20
jne 0x421438
mov eax, dword [ebp - 0x100ac]
lea edx, [ebp - 0x1006e]
mov ecx, 0x7ff8
test ecx, ecx
je 0x4213ee
nop dword [eax + eax]
cmp word [edx], 0x3a
je 0x4213e0
add edx, 2
sub ecx, 1
jne 0x4213d0
jmp 0x4213ee
test ecx, ecx
je 0x4213ee
mov eax, edx
add edx, 2
sub ecx, 1
jne 0x4213c7
xor ecx, ecx
mov word [eax + 0x80], cx
sub eax, 0xc
movq xmm0, qword [str.Error:]
push 0
push 1
movq qword [eax], xmm0
mov ecx, dword [0x44d058]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x1019c]
push eax
push 2
push ecx
mov edx, dword [ecx]
mov dword [ebp - 0x100ac], eax
call dword [edx + 0x28]
mov dword [ebp - 0x101a0], eax
mov dword [0x45771c], 0xffffffff
xor eax, eax
mov word [0x457540], ax
mov eax, dword [ebp - 0x100e0]
push 0
push dword [ebp - 0x10138]
mov ecx, dword [eax + 8]
add ecx, dword [ebp - 0x100d0]
mov eax, dword [eax + 0xc]
adc eax, dword [ebp - 0x100c4]
add dword [ebp - 0x10140], 0xffffffff
push eax
adc dword [ebp - 0x1013c], 0xffffffff
push ecx
mov dword [ebp - 0x10148], ecx
mov dword [ebp - 0x10144], eax
call fcn.0043d1d0
mov dword [ebp - 0x10158], eax
mov dword [ebp - 0x10154], edx
cmp edx, dword [ebp - 0x1015c]
jb 0x4214aa
ja 0x42149f
cmp eax, dword [ebp - 0x10160]
jbe 0x4214aa
lea ecx, [ebp - 0x101a0]
call fcn.004031a0
cmp dword [0x45771c], 0
je 0x4214d3
cmp dword [ebp - 0x100c0], 1
lea ecx, [ebp - 0x101a0]
sete al
movzx eax, al
push eax
push 0
push 0x3e8
call fcn.00403330
push edi
push dword [ebp - 0x100c8]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea eax, [ebp - 0x101ac]
push eax
push edi
push 0x4000
push 0x20
push dword [ebp - 0x100c8]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
mov eax, dword [ebp - 0x100c0]
add dword [ebp - 0x100e0], 0x18
dec eax
mov dword [ebp - 0x100c0], eax
test eax, eax
jne 0x420e07
lea ecx, [ebp - 0x101a0]
mov byte [ebp - 0x10158], 0x64
call fcn.004031a0
push 0x258
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_FreeConsole]
push dword [ebp - 0x100a4]
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 8
lea ecx, [ebp - 0x10108]
call fcn.00403870
add esp, 8
lea ecx, [ebp - 0x101a0]
call fcn.00403270
cmp dword [0x45771c], 0
lea ecx, [ebp - 0x101a0]
sete byte [ebp - 0x100a5]
call fcn.00402f30
mov al, byte [ebp - 0x100a5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00428cd6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x4c7
push dword [ebp - 0x101d0]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov eax, dword [ebp - 0x100e0]
movzx ecx, word [0x457540]
cmp dword [eax], 0
mov eax, dword [0x457544]
jge 0x4215dd
xor edx, edx
mov word [eax + ecx*2], dx
jmp 0x421626
lea esi, [eax + ecx*2]
mov edx, esi
test ecx, ecx
je 0x421600
movzx eax, word [edx]
cmp eax, 0x2e
je 0x421600
cmp eax, 0x5c
je 0x421600
cmp eax, 0x2f
je 0x421600
sub edx, 2
sub ecx, 1
jne 0x4215e6
cmp word [edx], 0x2e
movq xmm0, qword [str..upx]
cmove esi, edx
movq qword [esi], xmm0
mov ax, word [0x44d04c]
mov word [esi + 8], ax
lea eax, [ecx + 4]
mov word [0x457540], ax
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [0x457544]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x42153a
push dword [ebp - 0x100a4]
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 0xc
lea edx, [ebp - 0x10108]
lea ecx, [ebp - 0x101a0]
call fcn.00403910
int3