Function at 0x44ef8d
Capabilities:
Accept command line arguments
Get disk information
Log keystrokes via polling
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
push ebx
push esi
xor eax, eax
mov dword [ebp - 0x28], 0xcd9
mov ebx, ecx
mov byte [ebp - 0x3d], dl
xor esi, esi
mov dword [ebp - 0x24], ebx
push edi
mov dword [ebp - 8], eax
inc esi
jmp 0x44efc0
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x48], 0x8c6a53d0
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x44efb2
push 3
mov dword [ebp - 0x48], eax
pop edi
jmp 0x44effc
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x48]
sub ecx, 0xfffffffc
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x48]
jne 0x44eff4
mov ecx, dword [ebp - 0x28]
mov edx, 0x717c
sub edx, ecx
mov ecx, esi
cmp edx, 0x789328a
jne 0x44eff6
mov ecx, eax
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0xfffffff7
jle 0x44efcd
push dword [ebp + 8]
movdqa xmm0, xmmword [0xa601d0]
lea ecx, [ebp - 0x1bc]
push ecx
lea ecx, [ebp - 0x1cc]
mov dword [ebp - 0x6c], eax
push ecx
push eax
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x68], eax
movdqu xmmword [ebp - 0x1cc], xmm0
mov dword [ebp - 0x64], eax
call fcn.00401817
mov dword [ebp - 0x10], 0x30f94f37
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], edi
push 2
pop edi
cmp dword [ebp - 0x10], eax
jl 0x44f1b8
mov dword [ebp - 8], esi
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x6c]
push 3
pop ebx
mov ecx, dword [ecx + edx*4]
add ecx, 0x52d8cb4c
je 0x44f11c
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x44f129
mov dword [ebp - 0x18], 0xffffffff
lea ecx, [ebp - 0x144]
push edi
call fcn.004016e3
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x44f0ab
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x144]
mov dword [ecx + edx*4], 0x3b16aac8
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x44f098
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x6c]
cmp dword [ecx + edx*4], eax
je 0x44f0c7
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x6c]
cmp dword [ecx], edx
mov edx, esi
jg 0x44f0c9
mov edx, eax
mov ecx, dword [ebp - 0x144]
mov dword [ecx], edx
mov dword [ebp - 0x18], eax
jmp 0x44f0ff
mov dword [ebp - 8], 0xa0c0e075
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], eax
jl 0x44f0f9
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x10], eax
jne 0x44f0f9
mov dword [ebp - 0x28], 0xfffffffb
dec dword [ebp - 8]
jns 0x44f0e5
mov ecx, dword [ebp - 8]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x44f0d6
lea ecx, [ebp - 0x144]
call fcn.004017b5
dec dword [ebp - 0x1c]
jns 0x44f07e
xor eax, eax
jmp 0x44f129
mov dword [ebp - 0x3c], 0xfffffffa
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], eax
jl 0x44f1ac
mov dword [ebp - 0x20], 0xda314325
mov dword [ebp - 0x3c], 0x8ac507b3
cmp dword [ebp - 0x10], eax
jne 0x44f14b
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x44f14d
mov ecx, esi
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], eax
jne 0x44f162
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x6c]
cmp dword [ecx + edx*4], eax
mov ecx, eax
je 0x44f164
mov ecx, esi
mov esi, dword [ebp - 0x10]
xor ebx, ebx
mov edx, dword [ebp - 0x10]
add edx, ecx
mov ecx, dword [ebp - 0x3c]
cmp edx, ecx
mov ecx, dword [ebp - 0x6c]
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 - 0x20], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x3c], ecx
dec dword [ebp - 8]
jns 0x44f131
dec dword [ebp - 0x10]
jns 0x44f050
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x10], eax
call fcn.004017b5
mov eax, 0x61928c17
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
xor eax, eax
mov dword [ebp - 0x18], 0x3aa9ac70
mov dword [ebp - 0x18], eax
jmp 0x44f248
mov dword [ebp - 0x1c], 0x80849f84
mov dword [ebp - 0x1c], eax
jmp 0x44f23f
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 8], eax
jmp 0x44f236
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f21c
push eax
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor eax, eax
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f233
push 0x11fa
push eax
call dword [sym.imp.USER32.dll_CharLowerBuffW]
xor eax, eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jle 0x44f209
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x44f1fd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x44f1f1
mov ecx, dword [ebp - 0x18]
xor edx, edx
cmp ecx, 0x193e0566
setl dl
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], 0xe0648261
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 8], eax
jmp 0x44f282
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0xa4], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x44f275
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f2a1
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xfffffffb
jge 0x44f418
push 6
pop ebx
mov dword [ebp - 0x14], 0xe662db8e
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x20], 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 - 0x1c], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], esi
jge 0x44f300
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + edx*4], 0x4860
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x44f2e5
push 4
pop ecx
cmp dword [ebp - 0x10], eax
je 0x44f3d3
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 8], 0xf5b1b6fd
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], 0xd814
mov dword [ebp - 0x28], 0x167d3d8e
mov ecx, dword [ebp - 0x10]
dec dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0xa0], eax
jne 0x44f3ce
dec dword [ebp - 0x3c]
mov esi, 0x7c8fa1b4
mov ecx, dword [ebp - 0x10]
xor edx, edx
sub esi, ecx
add esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
cmp esi, ecx
setge dl
add edx, dword [ebp - 0xa4]
jne 0x44f382
mov ecx, dword [ebp - 0x28]
imul ecx, dword [ebp - 8], 0xe43c
test ecx, ecx
je 0x44f39e
mov ecx, dword [ebp - 0xdc]
cmp dword [ecx], eax
je 0x44f39e
xor esi, esi
inc esi
mov ecx, esi
jmp 0x44f3a3
xor esi, esi
mov ecx, eax
inc esi
mov eax, dword [ebp - 0x10]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp eax, edx
setge cl
cmp ebx, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x34], esi
jmp 0x44f3fd
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x14], eax
jmp 0x44f3f4
mov dword [ebp - 0x28], 0x1a2955e3
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x3c], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x17
jle 0x44f3db
cmp dword [ebp - 0x1c], eax
lea ecx, [ebp - 0xdc]
call fcn.004017b5
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffffb
jl 0x44f2b1
mov ebx, dword [ebp - 0x24]
mov eax, dword [0x47051c]
lea ecx, [ebp - 0x100]
push 4
mov dword [ebp - 0x3c], eax
call fcn.004016e3
push 3
pop esi
mov dword [ebp - 8], 0x452a26f3
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x28], 0x145b
push esi
call fcn.004016e3
mov eax, 0x585950cf
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x44f481
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x100]
mov dword [ecx + edx*4], 0x871c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x44f46e
mov dword [ebp - 0x10], eax
jmp 0x44f499
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x180], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x44f48c
mov dword [ebp - 0x10], eax
jmp 0x44f4b6
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x12c]
mov dword [ecx + edx*4], 0x8112def9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x44f4a3
mov esi, dword [ebp - 0x100]
cmp dword [esi + 0xc], eax
jne 0x44f506
xor ecx, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, 0x7e2f9d44
mov eax, dword [ebp - 0x28]
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 - 0x100]
setge dl
mov eax, dword [eax + 8]
imul eax, edx
add eax, dword [esi + 4]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x12c]
mov dword [eax + 4], ecx
xor eax, eax
cmp ecx, 0x5e42506e
setle al
xor edx, edx
imul eax, dword [ebp - 0x94]
lea ecx, [eax - 8]
mov eax, dword [ebp - 0x90]
cmp ecx, eax
mov eax, dword [ebp - 0x94]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x94]
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 - 8], eax
mov eax, dword [ebp - 0x94]
add eax, dword [ebp - 8]
cmp eax, 0x2658
setg cl
imul eax, ecx, 0xa273
xor ecx, ecx
cmp eax, 0x6ae6
setl cl
cmp ecx, 0xd994ad4d
lea ecx, [ebp - 0x12c]
sbb eax, eax
neg eax
add eax, dword [esi + 0xc]
mov dword [ebp - 0x17c], eax
call fcn.004017b5
lea ecx, [ebp - 0x100]
call fcn.004017b5
mov ecx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp - 0x3c]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
cmp byte [ebp - 0x3d], al
je 0x44f791
cmp esi, 1
jne 0x44f791
mov dword [ebp - 0x18], 0xb3ae3556
push 4
pop edx
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], 0xffffffed
cmp dword [ebp - 0x18], 0xa
mov dword [ecx + 8], edx
jg 0x44f777
xor ebx, ebx
inc ebx
push 2
pop ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 8], eax
cmp dword [ebp - 0x34], eax
je 0x44f67e
push ecx
lea ecx, [ebp - 0x1ac]
call fcn.004016e3
mov dword [ebp - 8], 0
jmp 0x44f641
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1ac]
mov dword [eax + ecx*4], 0x56251324
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44f62e
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], 0x26d2e858
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
test eax, eax
mov eax, dword [ebp - 0x10]
setns dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x1ac]
call fcn.004017b5
jmp 0x44f73e
mov dword [ebp - 0x14], 0xfffffffd
xor edx, edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], 0xd0d7
mov dword [ebp - 0x30], 6
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
setl dl
sub edx, dword [ebp - 0x14]
cmp edx, 0xfffffffd
jne 0x44f6ae
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
imul ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x44f6d2
mov edx, eax
cmp dword [ebp - 0x20], eax
je 0x44f6d4
mov edx, ebx
mov ecx, dword [ebp - 0x34]
sub edx, ecx
cmp edx, dword [ebp - 0x14]
jle 0x44f6e1
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
sub edx, ecx
je 0x44f6f6
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
add ecx, 0x6d3db623
mov dword [ebp - 0x30], ecx
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f740
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 - 8], eax
jmp 0x44f761
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f75e
push eax
push 0xd76
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor eax, eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jg 0x44f745
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jle 0x44f604
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f787
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0x47051c
push 4
lea ecx, [ebp - 0x174]
call fcn.004016e3
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x44f7b8
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x174]
mov dword [ecx + edx*4], 0x327c
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x44f7a5
mov byte [ebp - 9], al
cmp byte [ebp - 9], al
je 0x44f7e3
push eax
push 0x2bb
push 0x13ed
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
xor eax, eax
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44f7f4
push eax
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
lea ecx, [ebp - 0x174]
call fcn.004017b5
cmp ebx, esi
jge 0x450619
mov dword [ebp - 8], 9
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x30], 0x2d0da0bd
xor esi, esi
mov dword [ebp - 0x2c], 0xde6f885e
inc esi
push 0xfffffffffffffffc
pop edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x2c], 0x8cd3bed1
mov dword [ebp - 0x2c], 0x4c6f4446
mov dword [ebp - 0x2c], 0xcae8ef33
mov dword [ebp - 0x2c], 0x9d945ad3
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x2c], esi
push esi
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x44f86d
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x198]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x44f85e
mov dword [ebp - 0x10], eax
jmp 0x44f884
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x108], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x44f877
mov dword [ebp - 8], eax
jmp 0x44f941
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x2c], 0x2443ac46
mov dword [ebp - 0x2c], 0xd95da228
mov dword [ebp - 0x2c], 0x28ace4b0
mov dword [ebp - 0x38], 0xac842f88
mov dword [ebp - 0x1c], eax
jmp 0x44f8cb
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + ecx*4 - 0x20c], 0xf3ac9d73
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x44f8ba
mov dword [ebp - 0x18], edi
jmp 0x44f933
mov dword [ebp - 0x30], 0x3d2d672a
mov dword [ebp - 0x20], 0xce34aafb
mov dword [ebp - 0x34], 0x9a180452
mov dword [ebp - 0x1c], eax
jmp 0x44f8fd
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + ecx*4 - 0x1f0], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x44f8f0
mov ecx, dword [ebp - 0x30]
inc dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
inc dword [ebp - 0x20]
cmp ecx, edx
mov ecx, dword [ebp - 8]
mov edx, esi
cmovne edx, eax
add ecx, edx
jne 0x44f929
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], 0x41824674
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jge 0x44f8d6
inc dword [ebp - 0x108]
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff7
jge 0x44f892
lea ecx, [ebp - 0x198]
call fcn.004017b5
push 2
lea ecx, [ebp - 0x60]
mov edi, 0x470520
call fcn.004016e3
mov dword [ebp - 0x14], 0x18d4081c
mov dword [ebp - 8], 0
jmp 0x44f985
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44f975
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], esi
jg 0x44fb55
push 2
lea ecx, [ebp - 0xb0]
call fcn.004016e3
mov dword [ebp - 8], 0x37a30b91
xor eax, eax
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x18], 0x6e4944c1
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 5
mov dword [ebp - 8], eax
jmp 0x44f9e1
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + edx*4], 0x6e838462
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44f9ce
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x28], ecx
mov dword [ecx + 4], eax
mov dword [ebp - 0x30], 0xf9052196
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], esi
jge 0x44fa1f
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x44], 0xb61bab59
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x44fa09
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], esi
jg 0x44fad8
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x44]
xor ebx, ebx
cmp dword [ecx + 4], eax
mov ecx, dword [ebp - 0x60]
setne bl
mov edx, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x44]
sub edx, ebx
add ecx, edx
jne 0x44fa58
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + edx*4], eax
mov ecx, eax
je 0x44fa5a
mov ecx, esi
mov dword [ebp - 0x18], ecx
xor ebx, ebx
mov ecx, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [edx + esi*4]
mov ecx, dword [ebp - 0x60]
setg bl
xor edx, edx
cmp ebx, dword [ecx + edi*4]
mov ecx, dword [ebp - 0x14]
setne dl
mov dword [ebp - 0x38], edx
xor edx, edx
cmp dword [ebp - 0x38], ecx
setl dl
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x18], 0xfffffffb
jmp 0x44fabd
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44faba
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffed
jg 0x44faa9
inc dword [ebp - 0x44]
xor esi, esi
mov ecx, dword [ebp - 8]
inc esi
cmp dword [ebp - 0x44], esi
jle 0x44fa31
mov ecx, dword [ebp - 0x28]
dec dword [ebp - 0x20]
inc dword [ecx + 4]
cmp dword [ecx + 4], esi
jle 0x44f9f3
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + edx*4], eax
jne 0x44fb36
mov dword [ebp - 0x18], eax
jmp 0x44fb31
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + edx*4], eax
jne 0x44fb36
mov dword [ebp - 0x1c], eax
jmp 0x44fb28
mov dword [ebp - 8], eax
jmp 0x44fb1f
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + edx*4], 0xfffffffc
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44fb0c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x13
jge 0x44fb07
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x44faf7
lea ecx, [ebp - 0xb0]
call fcn.004017b5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x44f99b
mov ebx, dword [ebp - 0x24]
mov edi, 0x470520
lea ecx, [ebp - 0x60]
call fcn.004017b5
test ebx, ebx
jle 0x450017
xor eax, eax
mov dword [ebp - 0x10], 0x8e64
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x14], eax
jmp 0x44fb8b
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x118], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x44fb7a
mov dword [ebp - 0x14], eax
jmp 0x44fba7
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x1d8], 0xee01e6e8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x44fb96
cmp dword [ebp - 0x10], eax
jne 0x44fbcb
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x118], 0x3046
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
mov ecx, dword [ebp - 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
setne dl
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x10]
jl 0x44fc02
mov ecx, esi
cmp dword [ebp - 0x118], eax
jne 0x44fc04
mov ecx, eax
mov dword [ebp - 0x1d4], ecx
mov ecx, dword [edi]
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x30], 0x8884515f
mov dword [ebp - 0x38], 0xe974a520
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x30], 0x32883e73
mov dword [ebp - 0x14], 0xec51
mov dword [ebp - 0x18], 0xa
cmp dword [ebp - 0x18], 2
mov dword [ebp - 0x2c], ecx
jne 0x44fd19
mov dword [ebp - 0x1c], 0xfffffff6
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], 0xffff
mov dword [ebp - 8], eax
jmp 0x44fc88
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x1e4], 0x20985a95
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x44fc77
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], eax
je 0x44fc9c
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x1e4], esi
inc dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x3388
setge dl
xor ebx, ebx
sub edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
setne bl
xor ecx, ecx
cmp esi, ebx
setle cl
xor edx, edx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], ecx
setge dl
xor ebx, ebx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
setl bl
mov dword [ebp - 0x20], ebx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
je 0x44fc51
xor esi, esi
inc esi
inc dword [ebp - 0x14]
lea ecx, [ebp - 0x168]
push 2
call fcn.004016e3
mov dword [ebp - 8], 0x7a5b7d8c
mov dword [ebp - 8], 0
jmp 0x44fd4c
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x168]
mov dword [eax + ecx*4], 0xd4e06482
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44fd39
mov eax, dword [ebp - 0x168]
mov dword [eax], 0xffffffe2
mov dword [ebp - 8], 0
jmp 0x44fd82
mov dword [ebp - 0x30], 0x13fe662d
mov dword [ebp - 0x38], 0xfffffffb
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], 0xe9646b8d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffee
jl 0x44fd67
lea ecx, [ebp - 0x168]
call fcn.004017b5
mov eax, dword [edi + 4]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 8], 0xad313dd3
mov dword [ebp - 0x30], eax
mov dword [ebp - 8], eax
jmp 0x44fdd6
mov dword [ebp - 0x30], 0xfffffffb
xor ebx, ebx
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 8]
cmp ecx, edx
setle bl
mov dword [ebp - 0x30], ebx
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x44fdd3
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1c
jl 0x44fdaa
push dword [ebp + 8]
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 8], 0xac64a684
push ecx
lea ecx, [ebp - 0x1bc]
mov dword [ebp - 0xd0], eax
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0xcc], eax
push eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
add edi, 8
movdqu xmmword [ebp - 0x1bc], xmm0
call fcn.00401817
mov dword [ebp - 0x20], 8
push 6
mov dword [ebp - 0x30], 0xe708bee
pop eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov byte [ebp - 9], al
cmp byte [ebp - 9], al
je 0x44fe55
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
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 0x44fef5
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], eax
jmp 0x44fe6f
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + ecx*4 - 0x50], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x44fe65
mov dword [ebp - 0x50], 3
cmp dword [ebp - 0x50], eax
jl 0x44fef2
mov esi, dword [ebp - 0xd0]
xor edx, edx
mov dword [ebp - 0x1c], eax
inc edx
jmp 0x44fe9c
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + ecx*4 - 0x54], 0xf17e2f9d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x44fe8e
cmp dword [esi + 4], eax
je 0x44feac
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 8], eax
jne 0x44febb
cmp dword [ebp - 0x54], eax
jne 0x44febb
mov edx, eax
mov ecx, dword [ebp - 0x50]
xor ebx, ebx
add ecx, edx
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x28]
cmp ecx, edx
mov ecx, dword [ebp - 0x20]
setne bl
sub ecx, ebx
je 0x44feda
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov ecx, dword [ebp - 0x30]
add ecx, edx
mov dword [ebp - 0x20], ecx
dec dword [ebp - 0x50]
jns 0x44fe86
xor esi, esi
inc esi
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff7
jne 0x44fe5d
lea ecx, [ebp - 0xd0]
call fcn.004017b5
cmp dword [ebp - 0x38], 0
jne 0x44ff13
add edi, 8
xor eax, eax
mov dword [ebp - 8], 0xf2c29a3d
mov dword [ebp - 8], eax
jmp 0x44ff32
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x8c], 0x6af1124f
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x44ff21
mov dword [ebp - 8], esi
cmp dword [ebp - 8], eax
jl 0x450002
push esi
lea ecx, [ebp - 0xe8]
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x44ff65
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x4c], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x44ff57
mov dword [ebp - 0x14], eax
jmp 0x44ff82
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xe8]
mov dword [ecx + edx*4], 0xdf82d83d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x44ff6f
mov dword [ebp - 0x4c], eax
jmp 0x44ffba
mov dword [ebp - 0x18], 0x9c9fb37b
mov dword [ebp - 0x18], eax
jmp 0x44ffb2
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + ecx*4 - 0x8c]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp + ecx*4 - 0x8c], edx
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x44ff98
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], esi
jle 0x44ff8c
mov eax, dword [ebp - 0xe8]
mov dword [eax], esi
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x4c], 0xffffffff
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x8c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xe8]
dec dword [eax]
jns 0x44ffc7
lea ecx, [ebp - 0xe8]
call fcn.004017b5
dec dword [ebp - 8]
jns 0x44ff44
xor eax, eax
add edi, dword [ebp - 0x2c]
dec dword [ebp - 0x24]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 8], ecx
jne 0x44fb67
mov dword [ebp - 0x24], 0x52cb1363
xor eax, eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x20], 0x82f4e55b
mov dword [ebp - 0x28], 0xb83d
mov dword [ebp - 0x14], eax
jmp 0x45004e
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x120], 0x342e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45003d
mov dword [ebp - 0x14], eax
jmp 0x45006a
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x110], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x450059
mov byte [ebp - 9], al
cmp byte [ebp - 9], al
je 0x450087
push eax
push 0x134f
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
xor eax, eax
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x24], eax
jl 0x4501fa
mov dword [ebp - 0x2c], esi
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x38], 0xec7516a2
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], 0xfffffffa
mov dword [ebp - 0x30], 0xfffffffe
push 3
mov dword [ebp - 0x30], 0xfffffff8
pop ebx
mov dword [ebp - 8], 4
mov dword [ebp - 8], 0xfffffff9
mov dword [ebp - 8], 0xb168f92
push ebx
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4500f6
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x15c]
mov dword [ecx + edx*4], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4500e3
mov dword [ebp - 0x14], eax
jmp 0x450111
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x1fc], 0x88b1495d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x450100
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x120]
mov ecx, dword [ebp - 0x2c]
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [ebp + ecx*4 - 0x120], 0x5a7a
mov ecx, dword [ebp - 0x30]
test ecx, ecx
mov ecx, dword [ebp - 0x10c]
setns dl
cmp edx, 0xffffffff
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 0x15c]
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 - 0x20], 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 - 0x10c], ecx
mov dword [ebp - 0x1c], eax
jmp 0x4501dd
mov dword [ebp - 0x2c], 0x630de2fd
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x2c], 0xa828c040
push esi
call fcn.004016e3
mov dword [ebp - 8], 0
jmp 0x4501c7
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18c]
and dword [eax + ecx*4], 0
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x4501b7
inc dword [ebp - 0x28]
lea ecx, [ebp - 0x18c]
call fcn.004017b5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x450194
lea ecx, [ebp - 0x15c]
call fcn.004017b5
dec dword [ebp - 0x24]
push 0
pop eax
jns 0x450093
mov ecx, dword [edi]
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x2c], 0x9fb37b04
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
mov dword [ebp - 0x1c], ecx
je 0x45021f
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff1
jmp 0x450276
mov dword [ebp - 0x2c], 0xfffffff9
mov dword [ebp - 8], eax
jmp 0x450245
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x1a0], 0x5912491e
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x450234
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov ecx, dword [ebp - 0x24]
cmp ecx, edx
setge bl
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x450273
push eax
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
xor eax, eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe3
jge 0x450228
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x24], esi
push 2
mov dword [ebp - 0x20], 0x6edad94e
pop ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 8], 0xfffffff8
mov dword [ebp - 8], 0xfffe
push ebx
call fcn.004016e3
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4502c8
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x21c], 0x88d96753
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4502b7
mov dword [ebp - 0x14], eax
jmp 0x4502e6
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xf4]
mov dword [ecx + edx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4502d3
cmp dword [ebp - 0x18], eax
jne 0x450352
dec dword [ebp - 8]
je 0x4502fb
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0xf4]
sub esi, dword [ecx]
mov ecx, dword [ebp - 0x24]
cmp esi, ecx
setle dl
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0xf4]
xor ecx, ecx
cmp dword [esi], eax
sete cl
xor edx, edx
cmp ecx, 0x3a23fe5e
setne dl
xor ecx, ecx
cmp edx, 0xebe6
setle cl
xor edx, edx
cmp ecx, dword [esi]
setne dl
xor ecx, ecx
cmp edx, dword [esi]
setg cl
mov dword [esi], ecx
xor esi, esi
mov dword [ebp - 0x24], ecx
inc esi
mov ecx, dword [ebp - 0x24]
cmp dword [ebp - 8], eax
je 0x4503b8
mov dword [ebp - 8], 0xf5f9
lea ecx, [ebp - 0x138]
push esi
call fcn.004016e3
mov dword [ebp - 0x24], 0
jmp 0x450386
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x138]
mov dword [eax + ecx*4], 0x758c9e43
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x450373
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x138]
mov dword [eax], ecx
lea ecx, [ebp - 0x138]
call fcn.004017b5
jmp 0x450477
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x14
je 0x450446
mov dword [ebp - 8], 0xffffffff
jmp 0x450435
push esi
lea ecx, [ebp - 0x150]
call fcn.004016e3
mov dword [ebp - 0x24], 0
jmp 0x4503f6
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x150]
mov dword [eax + ecx*4], 0x76a90d26
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x4503e3
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x45041c
push 0x1386
push 0x167e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebp - 0x150]
lea ecx, [ebp - 0x150]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
call fcn.004017b5
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffe4
jge 0x4503ce
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x14
jne 0x4503c5
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x450472
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x45046f
push 0x21e3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetMapMode]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jle 0x45044b
lea ecx, [ebp - 0xf4]
call fcn.004017b5
mov esi, dword [edi + 4]
xor eax, eax
mov dword [ebp - 0x10], 0x3f4f46db
mov dword [ebp - 0x20], 0x6ab2aee5
mov dword [ebp - 0x2c], 0x42f3d479
mov dword [ebp - 0x24], eax
jmp 0x4504ab
mov ecx, dword [ebp - 0x24]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x4504a1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jg 0x450530
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x28], 0x5f7919ad
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp + ecx*4 - 0x78], eax
je 0x4504dc
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp + ecx*4 - 0x78]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x78]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + ecx*4 - 0x78]
mov ecx, dword [ebp - 0x10]
inc edx
mov ecx, dword [ebp + ecx*4 - 0x78]
cmp ecx, edx
mov ecx, dword [ebp - 0x10]
setg bl
add ebx, dword [ebp + ecx*4 - 0x78]
xor ecx, ecx
cmp ebx, 0x13af72b5
setle cl
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x20]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x4504b9
mov byte [ebp - 9], al
cmp byte [ebp - 9], al
je 0x45053e
call dword [sym.imp.USER32.dll_CreatePopupMenu]
test esi, esi
jne 0x450619
cmp byte [ebp - 0x3d], 0
mov ebx, dword [ebp - 0x1c]
je 0x45055e
cmp dword [ebp - 0x3c], 1
jne 0x45055e
mov ecx, dword [ebp + 8]
lea eax, [ebx + 0x10]
add dword [ecx + 8], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0xc]
add edi, 0x10
push ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], edi
call fcn.00461424
mov dword [ebp - 0x28], eax
xor eax, eax
pop ecx
mov dword [ebp - 0xc4], eax
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0xc4]
push eax
push ebx
call fcn.00460ace
mov edi, dword [ebp - 0x84]
xor ecx, ecx
mov esi, ecx
test ebx, ebx
jle 0x4505f3
mov eax, esi
and eax, 0x80000001
jns 0x4505bd
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x2c]
add eax, esi
add eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x30]
jmp 0x4505d2
lea eax, [edx + 1]
cdq
idiv ebx
cmp word [edi + edx*2], cx
jne 0x4505cf
xor eax, eax
inc eax
mov word [edi + edx*2], ax
mov eax, dword [ebp - 0x38]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x28]
mov byte [esi + edx], al
inc esi
cmp esi, ebx
jl 0x4505af
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x28]
mov dword [edx], ebx
mov dword [edx + 4], eax
test edi, edi
je 0x45061b
push edi
call fcn.00461bd6
pop ecx
xor ecx, ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
jmp 0x45061b
xor ecx, ecx
mov dword [ebp - 0x2c], 0x99ac
xor eax, eax
mov dword [ebp - 0x2c], 0xa4a12b57
inc eax
mov dword [ebp - 0x2c], 0x914d2edc
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x2c], 0xc196a162
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 8]
pop edi
mov dword [ebp - 0x28], 0xb5f0b10
dec dword [ebp - 0x28]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret