Function at 0x45066c
Capabilities:
Accept command line arguments
Check os version
Extract resource via kernel32 functions
Get disk information
Log keystrokes via polling
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5a4
push ebx
push esi
xor eax, eax
mov dword [ebp - 0x38], 0xcd9
xor esi, esi
mov dword [ebp - 0x40], ecx
push edi
mov dword [ebp - 8], eax
inc esi
jmp 0x45069a
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x64], 0x8c6a53d0
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x45068c
push 3
mov dword [ebp - 0x64], eax
pop ebx
jmp 0x4506d6
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp - 0x64]
sub ecx, 0xfffffffc
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x64]
jne 0x4506ce
mov ecx, dword [ebp - 0x38]
mov edx, 0x717c
sub edx, ecx
mov ecx, esi
cmp edx, 0x789328a
jne 0x4506d0
mov ecx, eax
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x64]
cmp dword [ebp - 0x64], 0xfffffff7
jle 0x4506a7
mov ecx, 0x61928c17
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 8], 0x3aa9ac70
mov dword [ebp - 8], eax
jmp 0x45075a
mov dword [ebp - 0x18], 0x80849f84
mov dword [ebp - 0x18], eax
jmp 0x450752
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], eax
jmp 0x45074a
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450730
push eax
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor eax, eax
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450747
push 0x11fa
push eax
call dword [sym.imp.USER32.dll_CharLowerBuffW]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x45071d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x450711
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x450705
mov ecx, dword [ebp - 8]
xor edx, edx
cmp ecx, 0x193e0566
setl dl
mov dword [ebp - 8], edx
mov dword [ebp - 0x24], 0xe0648261
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 8], eax
jmp 0x450793
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0xfc], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x450786
mov ebx, dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4507b5
call edi
push eax
call ebx
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x45091a
mov dword [ebp - 0x18], 0xe662db8e
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xfffffffd
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0x2737ae9f
push esi
call fcn.004016e3
push 4
pop ecx
xor eax, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], esi
jge 0x45080c
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x22c]
mov dword [ecx + edx*4], 0x4860
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x4507f1
push 4
pop ecx
cmp dword [ebp - 0x24], eax
je 0x4508e2
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 8], 0xf5b1b6fd
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], 0xd814
mov dword [ebp - 0x38], 0x167d3d8e
mov ecx, dword [ebp - 0x24]
dec dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0xf8], eax
jne 0x4508dd
dec dword [ebp - 0x34]
mov esi, 0x7c8fa1b4
mov ecx, dword [ebp - 0x24]
xor edx, edx
sub esi, ecx
add esi, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
cmp esi, ecx
setge dl
add edx, dword [ebp - 0xfc]
jne 0x45088e
mov ecx, dword [ebp - 0x38]
imul ecx, dword [ebp - 8], 0xe43c
test ecx, ecx
je 0x4508aa
mov ecx, dword [ebp - 0x22c]
cmp dword [ecx], eax
je 0x4508aa
xor esi, esi
inc esi
mov ecx, esi
jmp 0x4508af
xor esi, esi
mov ecx, eax
inc esi
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
push 6
setle dl
xor ecx, ecx
cmp eax, edx
pop eax
setge cl
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x28], esi
jmp 0x45090c
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], eax
jmp 0x450903
mov dword [ebp - 0x38], 0x1a2955e3
mov dword [ebp - 0x30], esi
mov ecx, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x17
jle 0x4508ea
cmp dword [ebp - 0x34], eax
lea ecx, [ebp - 0x22c]
call fcn.004017b5
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffffb
jl 0x4507bd
push 4
lea ecx, [ebp - 0x1e4]
call fcn.004016e3
push 3
pop esi
mov dword [ebp - 4], 0x452a26f3
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x38], 0x145b
push esi
call fcn.004016e3
mov eax, 0x585950cf
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], eax
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x450985
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1e4]
mov dword [ecx + edx*4], 0x871c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x450972
mov dword [ebp - 0x14], eax
jmp 0x45099d
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x364], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x450990
mov dword [ebp - 0x14], eax
jmp 0x4509ba
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x25c]
mov dword [ecx + edx*4], 0x8112def9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4509a7
mov esi, dword [ebp - 0x1e4]
cmp dword [esi + 0xc], eax
jne 0x450a0a
xor ecx, ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, 0x7e2f9d44
mov eax, dword [ebp - 0x38]
setge cl
sub ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0xb3bfa32a
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x1e4]
setge dl
mov eax, dword [eax + 8]
imul eax, edx
add eax, dword [esi + 4]
mov dword [ebp - 0x360], eax
mov ecx, dword [ebp - 0x100]
mov eax, dword [ebp - 0x25c]
mov dword [eax + 4], ecx
xor eax, eax
cmp ecx, 0x5e42506e
setle al
xor edx, edx
imul eax, dword [ebp - 0x104]
lea ecx, [eax - 8]
mov eax, dword [ebp - 0x100]
cmp ecx, eax
mov eax, dword [ebp - 0x104]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x104]
setle cl
xor edx, edx
cmp ecx, 0x7854
setl dl
xor ecx, ecx
add edx, dword [esi + 0xc]
cmp eax, edx
setl cl
imul eax, ecx, 0x2b9c
xor ecx, ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x104]
add eax, dword [ebp - 4]
cmp eax, 0x2658
setg cl
imul eax, ecx, 0xa273
xor ecx, ecx
cmp eax, 0x6ae6
setl cl
cmp ecx, 0xd994ad4d
lea ecx, [ebp - 0x25c]
sbb eax, eax
neg eax
add eax, dword [esi + 0xc]
mov dword [ebp - 0x360], eax
call fcn.004017b5
lea ecx, [ebp - 0x1e4]
call fcn.004017b5
mov dword [ebp - 0x38], 0xcd9
lea ecx, [ebp - 0x410]
push 4
call fcn.004016e3
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x450ae6
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x410]
mov dword [ecx + edx*4], 0x327c
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x450ad3
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x450b0d
push eax
push 0x2bb
push 0x13ed
call edi
push eax
call ebx
push eax
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
xor eax, eax
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450b1e
push eax
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
lea ecx, [ebp - 0x410]
call fcn.004017b5
xor eax, eax
xor esi, esi
mov dword [ebp - 8], eax
inc esi
jmp 0x450b41
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x60], 0x8c6a53d0
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x450b33
mov dword [ebp - 0x2c], 0x99ac
mov dword [ebp - 0x2c], 0xa4a12b57
mov dword [ebp - 0x2c], 0x914d2edc
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0xc196a162
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x34], 0xb5f0b10
dec dword [ebp - 0x34]
push 3
mov dword [ebp - 0x60], eax
pop ebx
cmp dword [ebp - 0x60], 0xfffffff7
jg 0x450d70
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], 0xb3ae3556
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x10], 0xffffffed
jmp 0x450d23
push 2
pop ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x24], eax
cmp dword [ebp - 8], eax
je 0x450c38
push ecx
lea ecx, [ebp - 0x37c]
call fcn.004016e3
mov dword [ebp - 8], 0
jmp 0x450bfb
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x37c]
mov dword [eax + ecx*4], 0x56251324
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x450be8
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x28], 0x26d2e858
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
test eax, eax
mov eax, dword [ebp - 0x28]
setns dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x37c]
call fcn.004017b5
jmp 0x450cf7
mov dword [ebp - 0x18], 0xfffffffd
xor edx, edx
mov dword [ebp - 4], esi
mov dword [ebp - 0x38], 0xd0d7
push 6
pop ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
cmp ecx, esi
setl dl
sub edx, dword [ebp - 0x18]
cmp edx, 0xfffffffd
jne 0x450c67
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x450c8b
mov edx, eax
cmp dword [ebp - 4], eax
je 0x450c8d
mov edx, esi
mov ecx, dword [ebp - 8]
sub edx, ecx
cmp edx, dword [ebp - 0x18]
jle 0x450c9a
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, esi
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
sub edx, ecx
je 0x450caf
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
add ecx, 0x6d3db623
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450cf9
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x450d1a
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450d17
push eax
push 0xd76
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 8
jg 0x450cfe
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xa
jle 0x450bbe
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x450d3f
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor eax, eax
mov ecx, dword [ebp - 0x60]
sub ecx, 0xfffffffc
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x60]
jne 0x450d63
mov ecx, dword [ebp - 0x14]
mov edx, 0x717c
sub edx, ecx
mov ecx, esi
cmp edx, 0x789328a
jne 0x450d65
mov ecx, eax
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x60]
jmp 0x450b90
push dword [ebp - 0x68]
movdqa xmm0, xmmword [0xa601d0]
lea ecx, [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x478]
mov dword [ebp - 0xb0], eax
push ecx
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xac], eax
movdqu xmmword [ebp - 0x478], xmm0
mov dword [ebp - 0xa8], eax
call fcn.00401817
mov dword [ebp - 0x24], 0x30f94f37
xor eax, eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], eax
jl 0x450f45
mov dword [ebp - 8], esi
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xb0]
mov ecx, dword [ecx + edx*4]
add ecx, 0x52d8cb4c
je 0x450e9b
mov dword [ebp - 4], 9
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], eax
jl 0x450ea8
mov dword [ebp - 8], 0xffffffff
lea ecx, [ebp - 0x280]
push 2
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x450e23
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x280]
mov dword [ecx + edx*4], 0x3b16aac8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x450e10
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xb0]
cmp dword [ecx + edx*4], eax
je 0x450e46
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xb0]
cmp dword [ecx], edx
mov edx, esi
jg 0x450e48
mov edx, eax
mov ecx, dword [ebp - 0x280]
mov dword [ecx], edx
mov dword [ebp - 8], eax
jmp 0x450e7e
mov dword [ebp - 0x20], 0xa0c0e075
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], eax
jl 0x450e78
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x24], eax
jne 0x450e78
mov dword [ebp - 0x38], 0xfffffffb
dec dword [ebp - 0x20]
jns 0x450e64
mov ecx, dword [ebp - 0x20]
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x450e55
lea ecx, [ebp - 0x280]
call fcn.004017b5
dec dword [ebp - 4]
jns 0x450df5
xor eax, eax
jmp 0x450ea8
mov dword [ebp - 0x34], 0xfffffffa
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], eax
jl 0x450f3c
mov dword [ebp - 4], 0xda314325
mov dword [ebp - 0x34], 0x8ac507b3
cmp dword [ebp - 0x24], eax
jne 0x450ece
mov ecx, eax
cmp dword [ebp - 4], eax
je 0x450ed0
mov ecx, esi
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], eax
jne 0x450ee8
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xb0]
cmp dword [ecx + edx*4], eax
mov ecx, eax
je 0x450eea
mov ecx, esi
mov esi, dword [ebp - 0x24]
xor ebx, ebx
mov edx, dword [ebp - 0x24]
add edx, ecx
mov ecx, dword [ebp - 0x34]
cmp edx, ecx
mov ecx, dword [ebp - 0xb0]
push 1
setge bl
xor edx, edx
cmp dword [ecx + esi*4], ebx
pop esi
setle dl
xor ecx, ecx
cmp edx, 0x74db9bec
setge cl
cmp ecx, 0xdbd3d38e
sbb ecx, ecx
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
dec dword [ebp - 8]
jns 0x450eb4
push 3
pop ebx
dec dword [ebp - 0x24]
jns 0x450dc7
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x24], eax
call fcn.004017b5
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
je 0x454a96
push dword [eax]
push 0
push dword [eax + 4]
call fcn.00421861
add esp, 0xc
lea ecx, [ebp - 0xbc]
push 2
call fcn.004016e3
mov dword [ebp - 0x28], 0x18d4081c
mov dword [ebp - 8], 0
jmp 0x450fa1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xbc]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x450f8e
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x28], esi
jg 0x451184
push 2
lea ecx, [ebp - 0x18c]
call fcn.004016e3
mov dword [ebp - 8], 0x37a30b91
xor eax, eax
mov dword [ebp - 8], 4
mov dword [ebp - 0x18], 0x6e4944c1
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 5
mov dword [ebp - 8], eax
jmp 0x450ffd
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + edx*4], 0x6e838462
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x450fea
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x34], ecx
mov dword [ecx + 4], eax
mov dword [ebp - 0x38], 0xf9052196
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], esi
jge 0x45103b
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x54], 0xb61bab59
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x451025
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], esi
jg 0x451103
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x54]
xor ebx, ebx
cmp dword [ecx + 4], eax
mov ecx, dword [ebp - 0xbc]
setne bl
mov edx, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x54]
sub edx, ebx
add ecx, edx
jne 0x45107d
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xbc]
cmp dword [ecx + edx*4], eax
mov ecx, eax
je 0x45107f
mov ecx, esi
mov dword [ebp - 8], ecx
xor ebx, ebx
mov ecx, dword [ebp - 0x54]
imul ecx, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [edx + esi*4]
mov ecx, dword [ebp - 0xbc]
setg bl
xor edx, edx
cmp ebx, dword [ecx + edi*4]
mov ecx, dword [ebp - 0x28]
setne dl
mov dword [ebp - 0x30], edx
xor edx, edx
cmp dword [ebp - 0x30], ecx
setl dl
mov dword [ebp - 0x30], edx
mov dword [ebp - 8], 0xfffffffb
jmp 0x4510e8
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4510e5
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffed
jg 0x4510d4
inc dword [ebp - 0x54]
xor esi, esi
mov ecx, dword [ebp - 0x20]
inc esi
cmp dword [ebp - 0x54], esi
jle 0x451050
mov ecx, dword [ebp - 0x34]
dec dword [ebp - 4]
inc dword [ecx + 4]
cmp dword [ecx + 4], esi
jle 0x45100f
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xbc]
cmp dword [ecx + edx*4], eax
jne 0x451167
mov dword [ebp - 0x18], eax
jmp 0x451162
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xbc]
cmp dword [ecx + edx*4], eax
jne 0x451167
mov dword [ebp - 0x20], eax
jmp 0x451159
mov dword [ebp - 8], eax
jmp 0x451150
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + edx*4], 0xfffffffc
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x45113d
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x13
jge 0x451138
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x451125
lea ecx, [ebp - 0x18c]
call fcn.004017b5
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jle 0x450fb7
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [ebp - 0xbc]
call fcn.004017b5
mov dword [ebp - 0x24], 0x8e64
xor eax, eax
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x10], eax
jmp 0x4511b5
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x240], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x4511a4
mov dword [ebp - 0x10], eax
jmp 0x4511d1
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x524], 0xee01e6e8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x4511c0
cmp dword [ebp - 0x24], eax
jne 0x4511f5
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x240], 0x3046
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
xor ebx, ebx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
cmp edx, ecx
mov ecx, dword [ebp - 0x24]
setg bl
xor edx, edx
cmp ebx, ecx
setne dl
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x24]
jl 0x45122c
mov ecx, esi
cmp dword [ebp - 0x240], eax
jne 0x45122e
mov ecx, eax
mov dword [ebp - 0x520], ecx
mov ecx, 0x61928c17
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 4], 8
mov dword [ebp - 0x2c], 0x8884515f
mov dword [ebp - 0x30], 0xe974a520
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x2c], 0x32883e73
mov dword [ebp - 0x10], 0xec51
mov dword [ebp - 0x18], 0xa
cmp dword [ebp - 0x18], 2
jne 0x45135b
mov dword [ebp - 0x20], 0xfffffff6
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0xffff
mov dword [ebp - 8], eax
jmp 0x4512ca
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x4f4], 0x20985a95
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x4512b9
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x4512de
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov esi, dword [ebp - 4]
mov dword [ebp - 0x4f4], esi
inc dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x3388
setge dl
xor ebx, ebx
sub edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
cmp edx, ecx
setne bl
xor ecx, ecx
cmp esi, ebx
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x38], ecx
setge dl
xor ebx, ebx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
cmp ecx, edx
setl bl
mov dword [ebp - 4], ebx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
je 0x451293
xor esi, esi
inc esi
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x20], 0x3aa9ac70
push 2
call fcn.004016e3
mov dword [ebp - 8], 0x7a5b7d8c
mov dword [ebp - 8], 0
jmp 0x451395
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x2e0]
mov dword [eax + ecx*4], 0xd4e06482
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x451382
mov eax, dword [ebp - 0x2e0]
mov dword [eax], 0xffffffe2
mov dword [ebp - 8], 0
jmp 0x4513cb
mov dword [ebp - 0x38], 0x13fe662d
mov dword [ebp - 0x30], 0xfffffffb
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], 0xe9646b8d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffee
jl 0x4513b0
lea ecx, [ebp - 0x2e0]
call fcn.004017b5
xor eax, eax
mov dword [ebp - 8], 0xad313dd3
mov dword [ebp - 0x38], eax
mov dword [ebp - 8], eax
jmp 0x451419
mov dword [ebp - 0x38], 0xfffffffb
xor ebx, ebx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 8]
cmp ecx, edx
setle bl
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x451416
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1c
jl 0x4513ed
push 3
mov dword [ebp - 0x20], eax
pop ebx
jmp 0x451dbb
mov dword [ebp - 0x18], 0xf2c29a3d
mov dword [ebp - 8], eax
jmp 0x451447
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x114], 0x6af1124f
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x451436
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x451517
push esi
lea ecx, [ebp - 0x214]
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x45147a
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x5c], 0xfffffffd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x45146c
mov dword [ebp - 0x10], eax
jmp 0x451497
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x214]
mov dword [ecx + edx*4], 0xdf82d83d
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x451484
mov dword [ebp - 0x5c], eax
jmp 0x4514cf
mov dword [ebp - 8], 0x9c9fb37b
mov dword [ebp - 8], eax
jmp 0x4514c7
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x114]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp + ecx*4 - 0x114], edx
mov ecx, dword [ebp - 8]
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x4514ad
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], esi
jle 0x4514a1
mov eax, dword [ebp - 0x214]
mov dword [eax], esi
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x5c], 0xffffffff
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x114]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x214]
dec dword [eax]
jns 0x4514dc
lea ecx, [ebp - 0x214]
call fcn.004017b5
dec dword [ebp - 0x18]
jns 0x451459
xor eax, eax
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0x80849f84
mov dword [ebp - 4], eax
jmp 0x451daf
mov dword [ebp - 8], 0xfffffffc
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x18], 5
push ebx
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x451561
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x50], 0x20a2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x451553
mov dword [ebp - 0x14], eax
jmp 0x45157c
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x450], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45156b
mov dword [ebp - 0x14], eax
jmp 0x451599
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x298]
mov dword [ecx + edx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x451586
mov ecx, dword [ebp - 0x50]
cmp dword [ebp - 0x50], eax
je 0x4515c7
mov ecx, dword [ebp - 0x50]
xor ebx, ebx
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ebp - 8]
cmp ecx, esi
mov ecx, dword [ebp - 8]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, esi
setne dl
cmp edx, dword [ebp - 0x50]
jl 0x4515c9
mov ecx, eax
cmp ecx, dword [ebp - 0x50]
jle 0x4515d5
mov edx, eax
cmp dword [ebp - 0x50], eax
je 0x4515d7
mov edx, esi
push 0xfffffffffffffffb
pop ebx
xor ecx, ecx
cmp edx, ebx
push 6
setg cl
pop edx
add ecx, edx
jne 0x4515ef
mov ecx, eax
cmp dword [ebp - 0x50], eax
je 0x4515f1
mov ecx, esi
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
imul eax, ecx
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x448]
mov eax, dword [ebp - 0x298]
or dword [eax], 0xffffffff
call fcn.004017b5
mov dword [ebp - 0x24], 0xffffffff
lea ecx, [ebp - 0x180]
mov dword [ebp - 0x18], 0xdae8c9f3
push 4
call fcn.004016e3
mov dword [ebp - 8], 0xa20bd035
xor eax, eax
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x10], 0xffff
mov dword [ebp - 0x28], 0x9132f4bb
mov dword [ebp - 0x38], 0x34605dd8
mov dword [ebp - 0x14], eax
jmp 0x45168f
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x180]
mov dword [ecx + edx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x451680
mov dword [ebp - 0x14], eax
jmp 0x4516ab
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x3c8], 0xbc775623
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45169a
push 3
mov dword [ebp - 0x14], eax
pop ebx
jmp 0x4516c6
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x1fc], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4516b9
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x180]
mov dword [esi + 0xc], ecx
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], eax
jne 0x4517b4
mov ecx, dword [ebp - 0x180]
cmp dword [ecx], eax
je 0x45170d
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
xor ecx, ecx
cmp dword [esi + 0xc], 0xfffffffc
setl cl
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x34], 0xffffffff
jg 0x45170d
cmp dword [ebp - 0x18], eax
je 0x45170d
xor eax, eax
inc eax
xor ecx, ecx
cmp eax, dword [esi + 0xc]
push 3
setge cl
xor eax, eax
cmp ecx, 0x1cd25bb5
setle al
xor ecx, ecx
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, 0x7220b73
setl cl
xor eax, eax
add ecx, dword [esi + 0xc]
cmp ecx, 0x117a540f
mov ecx, dword [esi + 0xc]
setle al
xor edx, edx
cmp eax, 0x78b72129
mov eax, dword [ebp - 0x18]
setl dl
imul eax, edx
xor edx, edx
add eax, ecx
cmp eax, ecx
mov eax, dword [ebp - 0x180]
setl dl
xor ecx, ecx
add edx, 9
cmp edx, 0x8d92
setg cl
xor edx, edx
sub ecx, dword [eax]
mov eax, dword [ebp - 0x1f4]
add ecx, eax
mov eax, dword [ebp - 0x1f8]
cmp ecx, eax
mov eax, dword [ebp - 0x1fc]
sete dl
mov dword [esi + 0xc], ecx
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setg bl
xor ecx, ecx
cmp ebx, eax
pop ebx
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x1fc]
cmp ecx, eax
lea ecx, [ebp - 0x180]
setg dl
mov dword [ebp - 0x38], edx
call fcn.004017b5
xor eax, eax
xor esi, esi
mov dword [ebp - 0x24], eax
inc esi
cmp dword [ebp - 0x24], ebx
jg 0x451dac
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 8], 8
mov dword [ebp - 0x2c], 0x8884515f
mov dword [ebp - 0x44], 0xe974a520
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x2c], 0x32883e73
mov dword [ebp - 0x30], 0xec51
mov dword [ebp - 0x18], 0xa
cmp dword [ebp - 0x18], 2
jne 0x4518ef
mov dword [ebp - 0x28], 0xfffffff6
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], 0xffff
mov dword [ebp - 8], eax
jmp 0x45185c
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x50c], 0x20985a95
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x45184b
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x18], eax
je 0x45186f
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
mov dword [ebp - 0x50c], esi
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x3388
push 3
setge dl
xor ebx, ebx
sub edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x28]
cmp edx, ecx
setne bl
xor ecx, ecx
cmp esi, ebx
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x38], ecx
setge dl
xor ebx, ebx
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x3c]
cmp ecx, edx
setl bl
mov dword [ebp - 8], ebx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
pop ebx
je 0x451825
xor esi, esi
inc esi
inc dword [ebp - 0x30]
lea ecx, [ebp - 0x310]
mov byte [ebp - 0x19], al
mov dword [ebp - 8], 0xfffffffc
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x18], 5
push ebx
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x451927
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x4c], 0x20a2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x451919
mov dword [ebp - 0x14], eax
jmp 0x451942
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x340], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x451931
mov dword [ebp - 0x14], eax
jmp 0x45195f
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + edx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45194c
mov ecx, dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], eax
je 0x45198d
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 8]
cmp ecx, esi
mov ecx, dword [ebp - 8]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, esi
setne dl
cmp edx, dword [ebp - 0x4c]
jl 0x45198f
mov ecx, eax
cmp ecx, dword [ebp - 0x4c]
jle 0x45199b
mov edx, eax
cmp dword [ebp - 0x4c], eax
je 0x45199d
mov edx, esi
xor ecx, ecx
cmp edx, 0xfffffffb
push 6
setg cl
pop edx
add ecx, edx
jne 0x4519b3
mov ecx, eax
cmp dword [ebp - 0x4c], eax
je 0x4519b5
mov ecx, esi
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
imul eax, ecx
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x338]
mov eax, dword [ebp - 0x310]
or dword [eax], 0xffffffff
call fcn.004017b5
cmp byte [ebp - 0x19], 0
je 0x451afc
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x174]
push 2
call fcn.004016e3
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x451a37
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x174]
mov dword [ecx + edx*4], 0x871d976f
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x451a24
mov dword [ebp - 0x10], eax
jmp 0x451a4a
cmp dword [ebp - 0x10], eax
jne 0x451a50
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe2
jg 0x451a42
mov dword [ebp - 0x10], eax
jmp 0x451ade
mov dword [ebp - 0x18], 0x67e307b5
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x451adb
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x451a80
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x451a58
lea ecx, [ebp - 0x174]
call fcn.004017b5
push 0
push 0
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push 2
lea ecx, [ebp - 0x1a8]
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x18], 0x9beb0647
mov dword [ebp - 8], eax
jmp 0x451b2a
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1a8]
mov dword [ecx + edx*4], 0xbca63185
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x451b17
mov dword [ebp - 0x18], eax
jmp 0x451ba4
mov dword [ebp - 8], 0xdb8faaae
cmp dword [ebp - 8], eax
jne 0x451ba9
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setl dl
cmp edx, 4
jb 0x451b62
cmp dword [ebp - 0x18], eax
jne 0x451b62
mov edx, eax
jmp 0x451b67
xor esi, esi
inc esi
mov edx, esi
mov ecx, dword [ebp - 0x1a8]
mov esi, dword [ecx + 4]
sub esi, edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1a8]
mov dword [ecx + edx*4], esi
xor edx, edx
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 0x18], 0xf58a
cmp ecx, 0x9507
setl dl
sub edx, dword [ebp - 8]
neg edx
sbb edx, edx
xor esi, esi
inc edx
mov dword [ebp - 8], edx
inc dword [ebp - 0x18]
inc esi
cmp dword [ebp - 0x18], esi
jle 0x451b35
lea ecx, [ebp - 0x1a8]
call fcn.004017b5
push 4
pop ebx
xor eax, eax
mov dword [ebp - 8], ebx
mov dword [ebp - 8], eax
jmp 0x451bd0
mov dword [ebp - 0x3c], 0xffffffff
cmp dword [ebp - 0x3c], eax
jne 0x451bd6
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff0
jg 0x451bc1
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x451bf3
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jle 0x45152f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x45142a
push dword [ebp - 0x68]
lea ecx, [ebp - 0x4c8]
mov dword [ebp - 8], 0xac64a684
push ecx
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x164], eax
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x160], eax
push eax
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x15c], eax
movdqu xmmword [ebp - 0x4d8], xmm0
call fcn.00401817
mov dword [ebp - 0x18], 8
push 6
mov dword [ebp - 0x3c], 0xe708bee
pop eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x451e36
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x451ed8
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], eax
jmp 0x451e50
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x6c], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x451e46
mov dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x6c], eax
jl 0x451ed5
mov esi, dword [ebp - 0x164]
mov dword [ebp - 4], eax
jmp 0x451e76
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x80], 0xf17e2f9d
inc dword [ebp - 4]
cmp dword [ebp - 4], 1
jl 0x451e68
cmp dword [esi + 4], eax
je 0x451e87
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 8], eax
jne 0x451e98
cmp dword [ebp - 0x80], eax
jne 0x451e98
mov edx, eax
jmp 0x451e9b
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x6c]
xor ebx, ebx
add ecx, edx
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x80]
cmp edx, ecx
mov ecx, dword [ebp - 0x18]
setne bl
sub ecx, ebx
je 0x451eba
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x6c]
sub edx, ecx
mov ecx, dword [ebp - 0x3c]
add ecx, edx
mov dword [ebp - 0x18], ecx
dec dword [ebp - 0x6c]
jns 0x451e63
xor esi, esi
push 3
inc esi
pop ebx
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff7
jne 0x451e3e
lea ecx, [ebp - 0x164]
call fcn.004017b5
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0x193e0566
push 2
setl cl
xor eax, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], 0x52cb1363
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x18], 0x82f4e55b
mov dword [ebp - 0x30], 0xb83d
mov dword [ebp - 0x10], eax
pop edx
jmp 0x451f37
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x250], 0x342e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x451f26
mov dword [ebp - 0x10], eax
jmp 0x451f52
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x248], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x451f41
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], al
je 0x451f6e
push eax
push 0x134f
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
xor eax, eax
mov dword [ebp - 8], esi
cmp dword [ebp - 8], eax
jl 0x4520e1
mov dword [ebp - 0x2c], esi
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x38], 0xec7516a2
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x44], 0xfffffff8
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x2c], 0xfffffff9
mov dword [ebp - 0x2c], 0xb168f92
push ebx
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x451fda
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2b0]
mov dword [ecx + edx*4], 0xfffffffe
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x451fc7
mov dword [ebp - 0x10], eax
jmp 0x451ff5
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x574], 0x88b1495d
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x451fe4
mov ecx, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x250]
mov ecx, dword [ebp - 0x3c]
inc dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x250], 0x5a7a
mov ecx, dword [ebp - 0x44]
test ecx, ecx
mov ecx, dword [ebp - 0x244]
setns dl
cmp edx, 0xffffffff
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 0x2b0]
setle bl
xor edx, edx
mov ecx, dword [ecx]
sub ecx, ebx
cmp ecx, 0x97a8
mov ecx, 0x5a7a
setl dl
sub ecx, edx
cmp dword [ebp - 0x18], 0xfffb
sbb edx, edx
inc edx
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [ebp - 0x38]
cmp ecx, edx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x20], eax
jmp 0x4520c1
mov eax, dword [ebp - 0x40]
push dword [eax + 4]
call fcn.00461bd6
mov dword [ebp - 8], 0xffffffff
xor eax, eax
mov dword [ebp - 0x3c], 0x9fb37b04
mov byte [ebp - 0x19], al
pop ecx
cmp byte [ebp - 0x19], al
je 0x45210e
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
xor eax, eax
mov dword [ebp - 8], 0xfffffff1
jmp 0x452165
mov dword [ebp - 0x3c], 0xfffffff9
mov dword [ebp - 4], eax
jmp 0x452134
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x3dc], 0x5912491e
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x452123
mov edx, dword [ebp - 0x3c]
xor ebx, ebx
mov ecx, dword [ebp - 8]
cmp ecx, edx
setge bl
mov dword [ebp - 0x3dc], ebx
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x452162
cmp dword [ebp - 8], 0xffffffe3
jge 0x452117
mov dword [ebp - 0x14], 0x1e559696
mov dword [ebp - 0x30], 0x1dfe936b
mov dword [ebp - 0x18], 0x955205
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], eax
jmp 0x452196
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x58], 0xfffffffd
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x452188
mov dword [ebp - 0x14], eax
jmp 0x4521e9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret