Function at 0x1001a89f
Capabilities:
Enumerate gui resources
Get disk information
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x330
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0xfc], ecx
inc esi
mov dword [ebp - 0xf8], edx
mov dword [ebp - 4], esi
xor ebx, ebx
mov dword [ebp - 0x18], 0x7f37c04c
push 4
mov dword [ebp - 0x18], 0xf05f4326
mov dword [ebp - 0x18], 0xb8fa48a2
pop edi
mov dword [ebp - 0x18], 0x11fb8eb5
push 6
mov dword [ebp - 0x18], 0xabff5ecc
mov dword [ebp - 8], ebx
pop ecx
jmp 0x1001a8fa
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2c4], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x1001a8ed
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp dword [ebp - 4], ebx
jne 0x1001a90f
mov eax, ebx
mov dword [ebp - 0x18], esi
xor ecx, ecx
cmp eax, 0x94ab
setle cl
xor edx, edx
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, dword [ebp - 4]
setle dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 4]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, ecx
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x1001a96f
push 0x24a3
push ebx
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], 0xfffffffd
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x14], ebx
jmp 0x1001a98f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x78], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001a985
mov dword [ebp - 0x14], ebx
jmp 0x1001a9a4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1001a99a
mov dword [ebp - 0x14], ebx
jmp 0x1001a9bb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2f4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a9ae
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jg 0x1001a9cf
mov ecx, esi
cmp dword [ebp - 0x10], ebx
jne 0x1001a9d1
mov ecx, ebx
xor eax, eax
cmp ecx, 0x4952
setge al
add eax, dword [ebp - 0x10]
jne 0x1001a9e4
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg ecx
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, dword [sym.imp.KERNEL32.dll_SetLastError]
sbb ecx, ecx
inc ecx
xor ebx, ebx
cmp ecx, eax
push 3
setl bl
xor edx, edx
add ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp ebx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
pop edx
setle cl
cmp ecx, dword [ebp - 0x1c]
jge 0x1001aaf7
xor ebx, ebx
cmp dword [ebp - 0x10], ebx
je 0x1001aaf9
mov dword [ebp - 4], ebx
jmp 0x1001aa46
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x24c], 0x843c6bcf
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x1001aa35
mov dword [ebp - 4], ebx
jmp 0x1001aa61
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x148], 8
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1001aa50
mov dword [ebp - 0x10], ebx
jmp 0x1001aad9
mov dword [ebp - 0x18], 0x51814487
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x78]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x78], ecx
mov eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x248]
sub eax, 0xfffffff7
neg eax
sbb eax, eax
inc eax
cmp edx, eax
sbb eax, eax
neg eax
cmp eax, 0xffffffff
jge 0x1001aaa7
cmp dword [ebp - 0x1c], ebx
je 0x1001aaa7
xor eax, eax
inc eax
jmp 0x1001aaa9
mov eax, ebx
mov dword [ebp - 0x148], eax
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
push 3
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
pop edx
setge cl
mov dword [ebp - 8], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jle 0x1001aa6c
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x1001abc8
push ebx
push ebx
push 1
push ebx
call edi
jmp 0x1001abc8
xor ebx, ebx
mov dword [ebp - 4], 1
mov dword [ebp - 8], 0xfffffffd
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0x6e219e4e
mov dword [ebp - 0x10], ebx
jmp 0x1001abbe
mov dword [ebp - 8], ebx
jmp 0x1001ab2f
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1d4], 0x8004c3d8
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001ab1e
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001ab45
push 0x2ee
call esi
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x78], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
cmp ecx, eax
setle dl
mov dword [ebp - 0x18], edx
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x78]
mov dword [ebp - 8], 0xfff7
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x78]
mov eax, dword [ebp - 4]
cmp eax, 1
mov eax, dword [ebp - 0x60]
setle dl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1cc]
setle cl
add eax, ecx
mov ecx, dword [ebp - 0x1c8]
add ecx, eax
neg ecx
mov dword [ebp - 0x2ec], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jle 0x1001ab19
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], 0xe81a7ecc
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jne 0x1001abf0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
je 0x1001abf0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
je 0x1001abfa
xor eax, eax
inc eax
jmp 0x1001abfc
mov eax, ebx
push 3
pop ecx
cmp eax, dword [ebp - 0x10]
jle 0x1001ac3f
mov dword [ebp - 8], ebx
jmp 0x1001ac1a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x228], 0x6ddcd166
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001ac09
mov dword [ebp - 0x10], ebx
jmp 0x1001ac35
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x228], 0xbdbdf7cd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001ac24
jmp 0x1001ad31
mov dword [ebp - 0x18], 0xd8ff8cd3
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x1001ac63
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x258], 0x94486cae
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001ac52
mov dword [ebp - 4], ebx
jmp 0x1001ac7e
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x1b4], 0xfffffffb
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1001ac6d
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001ac9c
push 0xeaf
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 3
pop ecx
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 1
jne 0x1001ad31
mov dword [ebp - 4], ebx
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
setge bl
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
xor edx, edx
cmp ebx, ecx
setle dl
sub edx, dword [ebp - 4]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 1
setge al
xor ecx, ecx
cmp eax, 0xf4c6
setne cl
xor ebx, ebx
mov dword [ebp - 0x258], ecx
test ecx, ecx
je 0x1001ad11
cmp dword [ebp - 4], ebx
je 0x1001ad11
xor ecx, ecx
inc ecx
jmp 0x1001ad13
mov ecx, ebx
mov eax, dword [ebp - 4]
sub eax, ecx
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 4]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
je 0x1001aca9
push 3
pop ecx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 0x7f37c04c
mov dword [ebp - 0x18], 0xf05f4326
mov dword [ebp - 0x18], 0xb8fa48a2
mov dword [ebp - 0x18], 0x11fb8eb5
mov dword [ebp - 8], 0xb7c7ce53
mov dword [ebp - 8], ebx
jmp 0x1001ad73
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x240], 7
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001ad62
mov dword [ebp - 8], ebx
jmp 0x1001add9
mov dword [ebp - 4], 0x74dd032
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 4], ebx
jmp 0x1001adb3
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001ada4
push 0xf6e
call dword [sym.imp.USER32.dll_GetKeyState]
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x240], ebx
jne 0x1001adb9
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jle 0x1001ad90
mov dword [ebp - 0x18], 0xf0a9
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], 0xfffffff8
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x1001ad7d
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001adf5
push ebx
push 0x12fc
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov dword [ebp - 0x18], 0xabff5ecc
mov eax, 0xf112
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x10], 0x29a3df60
mov dword [ebp - 4], 0x302d9caa
mov dword [ebp - 8], ebx
jmp 0x1001ae37
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xd4], 0x18c6a866
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001ae26
push 3
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x1001afc9
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x18], 0xaeaba4a2
mov dword [ebp - 0x18], 0x87c7a501
mov dword [ebp - 8], ebx
jmp 0x1001ae76
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x128], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001ae69
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jl 0x1001afa5
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x1001afa2
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x1001af2b
mov eax, dword [ebp - 0x88]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x88]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setle dl
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x10], ebx
je 0x1001aef5
cmp dword [ebp - 0x124], ebx
jne 0x1001af05
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x1001af05
mov eax, ebx
jmp 0x1001af08
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebp + eax*4 - 0x88]
jle 0x1001af52
cmp dword [ebp - 4], ebx
je 0x1001af52
xor ecx, ecx
inc ecx
jmp 0x1001af54
mov ecx, ebx
mov eax, dword [ebp - 0x14]
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0x10]
add ecx, 0xcc73
cmp ecx, 0x101e
mov eax, dword [ebp + eax*4 - 0x88]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setle cl
cmp ecx, 0xfff7
mov eax, dword [ebp + eax*4 - 0x88]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setne cl
mov dword [ebp - 0x18], ecx
dec dword [ebp - 0x14]
jns 0x1001ae88
push 3
pop ecx
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jl 0x1001afc6
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001afbe
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
dec dword [ebp - 0x14]
jns 0x1001afad
push 3
pop ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jle 0x1001ae48
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], 4
jge 0x1001aff1
push 6
pop ecx
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2d4], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001afde
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jne 0x1001b003
mov eax, ebx
jmp 0x1001b006
xor eax, eax
inc eax
mov dword [ebp - 0x18], 1
xor ecx, ecx
cmp eax, 0x94ab
setle cl
xor edx, edx
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, ecx
inc edx
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 0xd8b3d385
mov dword [ebp - 0x14], 0x19
jmp 0x1001b232
mov dword [ebp - 4], 0xe713a473
mov dword [ebp - 0x18], 0xaa7054f8
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 8], ebx
jmp 0x1001b093
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x40], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x1001b089
mov dword [ebp - 4], ebx
jmp 0x1001b213
mov dword [ebp - 0x1c], 0xaa9dade6
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], 0x571be33b
mov dword [ebp - 0x10], ebx
jmp 0x1001b0c3
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x150], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001b0b6
push 4
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x1001b0e2
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2a4], 7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001b0d1
mov dword [ebp - 0x10], ebx
jmp 0x1001b0fd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1e4], 0x8e103ca5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001b0ec
mov dword [ebp - 0x10], ebx
jmp 0x1001b118
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xd8], 0x1355901a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001b107
cmp dword [ebp - 0x1c], ebx
jne 0x1001b125
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp eax, edx
setg cl
xor edx, edx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp ecx, eax
setne dl
xor ecx, ecx
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
cmp eax, 0x9b4c
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x1c]
cmp dword [ebp - 8], ecx
jg 0x1001b199
cmp dword [ebp - 8], ebx
jne 0x1001b199
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2a4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x40]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x40]
je 0x1001b1dc
cmp dword [ebp - 0x40], ebx
jne 0x1001b1dc
mov edx, ebx
jmp 0x1001b1df
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1e0]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0xd8], ecx
mov eax, dword [ebp - 4]
add eax, 0x9b52
jne 0x1001b208
cmp dword [ebp - 8], ebx
jne 0x1001b208
xor edx, edx
mov eax, ebx
inc edx
jmp 0x1001b20d
xor edx, edx
inc edx
mov eax, edx
mov dword [ebp - 0x18], eax
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffffd
jle 0x1001b0a0
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001b22c
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
dec dword [ebp - 0x14]
push 1
pop edx
cmp dword [ebp - 0x14], 0xffffffff
jne 0x1001b06f
push 3
mov dword [ebp - 0x20], 0x34e2
mov dword [ebp - 8], ebx
pop ecx
jmp 0x1001b255
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x30], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001b24b
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], 0xfffffff2
je 0x1001b32f
push 6
mov ebx, 0xd77dfcc8
pop edi
mov dword [ebp - 8], 0xc7153413
xor edx, edx
mov dword [ebp - 0x18], 7
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], 0x7b6bcf4f
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setle cl
xor edx, edx
cmp ecx, 0x9cbc
setle dl
sub edx, 0xb07f
neg edx
sbb edx, edx
add eax, 0xfffffff9
lea ecx, [edx + 1]
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
sete dl
sub edx, 0xe3585ca2
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x2c]
setg cl
cmp ebx, ecx
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp edi, ecx
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x2c]
jle 0x1001b311
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffff2
jne 0x1001b26f
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
xor ebx, ebx
push 3
pop ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov byte [ebp - 9], bl
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0x14], 2
mov dword [ebp - 4], ebx
jmp 0x1001b37b
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x320], 0xfffffffa
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1001b36a
mov dword [ebp - 4], ebx
jmp 0x1001b397
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xdc], 0xb566e66b
inc dword [ebp - 4]
cmp dword [ebp - 4], 1
jl 0x1001b386
mov dword [ebp - 4], 0x12
jmp 0x1001b571
mov dword [ebp - 0x18], 0x19c9214a
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x1c], 0x402da3c3
mov dword [ebp - 8], ebx
jmp 0x1001b3d4
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xcc], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001b3c3
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], ebx
jl 0x1001b46f
mov dword [ebp - 8], ebx
jmp 0x1001b402
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x94], 4
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001b3f1
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
cmp eax, 0x58905b8b
mov eax, dword [ebp - 0x94]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xcc]
setg dl
sub edx, eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
sub ecx, 0x64d64ea3
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x94]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 1
setl al
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0xc0]
jns 0x1001b3ec
push 3
pop ecx
mov dword [ebp - 0x1c], ebx
jmp 0x1001b565
mov dword [ebp - 0x20], 0xfffb
mov dword [ebp - 8], ebx
jmp 0x1001b490
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa8], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001b483
cmp dword [ebp - 0x14], ebx
je 0x1001b50e
mov dword [ebp - 8], 0xe1289ed5
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 8]
jg 0x1001b4ba
cmp dword [ebp - 0xec], ebx
je 0x1001b4ba
xor eax, eax
inc eax
jmp 0x1001b4bc
mov eax, ebx
cmp eax, dword [ebp - 0xdc]
jg 0x1001b4cd
cmp dword [ebp - 0x14], ebx
jne 0x1001b4cd
mov edx, ebx
jmp 0x1001b4d0
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp + eax*4 - 0xcc], edx
mov eax, dword [ebp - 0xa4]
cmp edx, eax
mov eax, dword [ebp - 0xa8]
setl cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0xa8]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0xa8]
jl 0x1001b50e
xor edx, edx
inc edx
jmp 0x1001b510
mov edx, ebx
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xe8]
setl cl
sub eax, ecx
jne 0x1001b537
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0xcc], ebx
jne 0x1001b537
mov edx, ebx
jmp 0x1001b53a
xor edx, edx
inc edx
mov eax, dword [ebp - 0xe8]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x10]
push 3
setl cl
xor edx, edx
cmp ecx, 0x349b
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x1c]
pop ecx
cmp dword [ebp - 0x1c], ecx
jle 0x1001b477
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jge 0x1001b3a9
cmp byte [ebp - 9], 0
je 0x1001b58d
push 0x24a3
push ebx
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 0xd8169b41
mov dword [ebp - 8], 0x7b364fe
mov dword [ebp - 8], ebx
jmp 0x1001b5b8
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], 0x48261f9c
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001b5aa
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x1001b768
mov dword [ebp - 4], 0x37d45db3
mov dword [ebp - 8], 0x11e9056f
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
jl 0x1001b75f
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x15e4
mov dword [ebp - 8], 0xe4f9f010
mov dword [ebp - 0x18], 0x23668f78
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0x1c], 0xc46d767c
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 8], eax
je 0x1001b642
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
cmp eax, 1
setg cl
cmp ecx, dword [ebp - 4]
jle 0x1001b6c6
mov dword [ebp - 8], ebx
jmp 0x1001b671
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x18c], 0x5e3164c1
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x1001b660
mov eax, dword [ebp - 0x18c]
xor edx, edx
cmp eax, 0x6dc7
mov eax, dword [ebp - 0x188]
setle dl
xor ecx, ecx
cmp eax, edx
mov edx, dword [ebp - 0x44]
setge cl
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
add edx, 9
cmp edx, 0xf7f2
setg al
xor ecx, ecx
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
setge cl
mov dword [ebp - 0x18], ecx
jmp 0x1001b756
mov dword [ebp - 8], 1
mov dword [ebp - 0x1c], 0xbb39d90d
mov dword [ebp - 8], ebx
jmp 0x1001b6ea
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x120], 0x6aef
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001b6d9
mov eax, dword [ebp - 0x120]
xor ecx, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, 0xffffffff
setle cl
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], 0x58db2edf
mov dword [ebp - 8], 0xb43c6211
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
sub edx, eax
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x46fedea8
setl cl
xor edx, edx
cmp eax, ecx
setg dl
xor eax, eax
cmp edx, 0x519c81b9
sete al
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], ebx
jne 0x1001b75f
dec dword [ebp - 4]
jns 0x1001b5e7
dec dword [ebp - 0x10]
jns 0x1001b5ca
mov dword [ebp - 0x1c], ebx
jmp 0x1001b78f
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001b78c
push 0x1f1b
push ebx
push 0x812
push 0x192c
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffeb
jle 0x1001b76d
mov dword [ebp - 0x18], 0xae7b
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], 0xd1d8475
mov dword [ebp - 4], ebx
jmp 0x1001b7c3
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x170], 0x33a79cc0
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1001b7b2
mov dword [ebp - 4], ebx
jmp 0x1001b7df
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x294], 0x153413f0
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1001b7ce
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x1001b7f8
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
neg ecx
add eax, ecx
je 0x1001b815
cmp dword [ebp - 0x1c], ebx
je 0x1001b815
xor edx, edx
inc edx
jmp 0x1001b817
mov edx, ebx
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, edx
mov eax, dword [ebp - 0x18]
setge cl
xor edx, edx
cmp ecx, eax
setge dl
mov dword [ebp - 0x170], edx
test edx, edx
je 0x1001b844
cmp dword [ebp - 0x1c], ebx
je 0x1001b844
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [ebp - 0x1c]
je 0x1001b85f