Function at 0x100312b9
Capabilities:
Accept command line arguments
Create process on windows
Get common file path
Get disk information
Get file attributes
Get keyboard layout
Get session user name
Identify system language via api
Modify service
Query service status
Read .ini file
Resume thread

Disassembly:
mov eax, 0x1008172c
call fcn.1007ffb0
mov eax, 0x15e4
call fcn.1007c720
or eax, 0xffffffff
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x48], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x4c], 0x77b6
push ebx
mov dword [ebp - 0x18], eax
inc ecx
push esi
push edi
mov byte [ebp - 0x85], dl
cmp dword [ebp - 0x18], ecx
jge 0x1003130b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x74], 0x4e2db58
xor eax, eax
inc dword [ebp - 0x18]
inc eax
cmp dword [ebp - 0x18], eax
jl 0x100312f3
xor eax, eax
push 2
mov dword [ebp - 0x18], eax
pop ebx
jmp 0x10031324
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8c4], 0x38884515
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x10031313
mov dword [ebp - 0x74], 3
cmp dword [ebp - 0x74], 0x13
jl 0x10031513
push 3
pop edi
movdqa xmm0, xmmword [0x10007b10]
lea eax, [ebp - 0x1180]
push eax
lea eax, [ebp - 0x1190]
push eax
lea ecx, [ebp - 0x14e0]
movdqu xmmword [ebp - 0x1190], xmm0
call fcn.10017178
lea ecx, [ebp - 0x273]
mov esi, eax
call fcn.10008a53
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x480]
push dword [esi]
call fcn.1001713e
xor eax, eax
lea ecx, [ebp - 0x480]
mov dword [ebp - 4], eax
mov dword [ebp - 0x24], eax
mov eax, 0x9105fa2e
mov dword [ebp - 0x87c], eax
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], eax
push edi
mov dword [ebp - 0x870], eax
call fcn.10017169
and dword [eax], 0
jmp 0x1003147e
mov dword [ebp - 0x20], 0xa6d
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x40], 0x6559653e
mov eax, dword [ebp - 0x74]
push edi
call fcn.10017169
xor edx, edx
push edi
mov eax, dword [eax]
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x24]
add ecx, 0xbdeb
cmp eax, ecx
mov eax, dword [ebp - 0x74]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x74]
setg cl
imul eax, ecx
lea ecx, [ebp - 0x480]
add eax, dword [ebp - 0x8c0]
mov dword [ebp - 0x874], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x74]
call fcn.10017169
mov edx, dword [ebp - 0x20]
sub edx, dword [eax]
mov eax, dword [ebp - 0x48]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, dword [ebp - 0x20]
jl 0x1003144b
cmp dword [ebp - 0x48], eax
jne 0x10031493
jmp 0x10031470
mov dword [ebp - 0x40], 0x5cf0adc1
dec dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
jmp 0x1003146b
mov eax, dword [ebp - 0x48]
mov dword [ebp + eax*4 - 0x8c4], 0x3e731e7b
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], ebx
jl 0x1003145a
push edi
lea ecx, [ebp - 0x480]
call fcn.10017169
dec dword [eax]
push edi
lea ecx, [ebp - 0x480]
call fcn.10017169
cmp dword [eax], 0xfffffff6
je 0x100313bd
mov dword [ebp - 0x24], 0x15
cmp dword [ebp - 0x24], edi
je 0x100314f5
or ebx, 0xffffffff
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x20], eax
jne 0x100314d7
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x874]
mov eax, dword [ebp - 0x87c]
add eax, ecx
mov dword [ebp - 0x87c], eax
jne 0x100314d7
xor eax, eax
mov esi, eax
jmp 0x100314dc
xor eax, eax
lea esi, [eax + 1]
push edi
lea ecx, [ebp - 0x480]
call fcn.10017169
mov dword [eax], esi
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jne 0x100314a2
push 2
pop ebx
or eax, 0xffffffff
lea ecx, [ebp - 0x480]
mov dword [ebp - 4], eax
call fcn.10017164
inc dword [ebp - 0x74]
cmp dword [ebp - 0x74], 0x13
jge 0x1003133d
push ebx
lea ecx, [ebp - 0x184]
call fcn.100170df
xor edi, edi
lea ecx, [ebp - 0xb70]
inc edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x4c], 5
push edi
call fcn.100170df
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xcd8]
mov dword [ebp - 0x2c], 0xfffe
push ebx
call fcn.100170df
mov byte [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x44], 3
mov esi, 0xffff
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x10031597
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x184]
call fcn.10017169
mov dword [eax], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x1003157d
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x100315b9
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xb70]
call fcn.10017169
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1003159f
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x100315df
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xcd8]
call fcn.10017169
mov dword [eax], 0xaf2c67a9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x100315c1
xor eax, eax
push eax
lea ecx, [ebp - 0x184]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x184]
xor eax, eax
push eax
call fcn.10017169
push edi
lea ecx, [ebp - 0x184]
call fcn.10017169
push edi
lea ecx, [ebp - 0x184]
call fcn.10017169
push edi
lea ecx, [ebp - 0x184]
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x184]
push eax
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x184]
mov eax, dword [ebp - 0x10]
push edi
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x184]
push eax
call fcn.10017169
push edi
lea ecx, [ebp - 0x184]
call fcn.10017169
lea ecx, [ebp - 0x184]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x184]
push edi
call fcn.10017169
lea ecx, [ebp - 0xb70]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [ebp - 0x4c]
mov dword [eax], ecx
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x100316a4
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x38]
lea ecx, [ebp - 0x184]
push edi
call fcn.10017169
mov ecx, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x38]
push edi
add ecx, dword [eax]
cmp esi, ecx
lea ecx, [ebp - 0x184]
sbb esi, esi
neg esi
call fcn.10017169
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
cmp esi, ecx
lea ecx, [ebp - 0xcd8]
push edi
setg bl
imul ebx, dword [eax]
call fcn.10017169
lea ecx, [ebp - 0xcd8]
mov dword [eax], ebx
dec dword [ebp - 0x44]
call fcn.10017164
lea ecx, [ebp - 0xb70]
call fcn.10017164
or eax, 0xffffffff
lea ecx, [ebp - 0x184]
mov dword [ebp - 4], eax
call fcn.10017164
push 4
xor ebx, ebx
lea ecx, [ebp - 0x1120]
pop esi
inc ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x48], 0x42c70bb7
push esi
call fcn.100170df
mov dword [ebp - 4], esi
xor eax, eax
mov dword [ebp - 0x30], 0xd9c7279c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x10031759
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1358], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10031744
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x1003177f
push dword [ebp - 0x18]
lea ecx, [ebp - 0x1120]
call fcn.10017169
mov dword [eax], 0xf5aee0cd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10031761
xor eax, eax
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 2
mov dword [ebp - 0x48], eax
pop esi
jmp 0x100317b9
mov dword [ebp - 0x20], 0xff55e00f
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x20], eax
jl 0x100317b6
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x100317b1
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x1003179c
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], esi
jle 0x1003178d
push 0xfffffffffffffffa
pop edx
mov dword [ebp - 0x48], esi
push 9
pop ecx
cmp dword [ebp - 0x48], eax
jl 0x10031829
jmp 0x100317d0
xor eax, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x4c], 0xc8b9ba5e
mov dword [ebp - 0x10], eax
jmp 0x100317f0
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1584], 0x5a8b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100317df
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x4c]
sub eax, ecx
sub eax, dword [ebp - 0x1354]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], al
je 0x10031824
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
push 9
pop ecx
push 0xfffffffffffffffa
pop edx
dec dword [ebp - 0x48]
jns 0x100317ce
or eax, 0xffffffff
lea ecx, [ebp - 0x1120]
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x24], 0xfffffff6
xor eax, eax
mov dword [ebp - 0x44], 0xda8e97ee
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1003186a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xee4], 0xbaf43b7c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031852
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], eax
jl 0x10031900
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10031899
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x83c], 0xc5534bf8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031881
xor eax, eax
mov dword [ebp - 0x83c], 3
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jg 0x100318f7
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x100318ea
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x100318e5
push 0x2660
push 0xb9f
push 0x2bf
push 0x1c52
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_IntersectClipRect]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x100318b6
mov eax, dword [ebp - 0x44]
inc dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp - 0x10], eax
jle 0x100318ab
dec dword [ebp - 0x44]
jns 0x10031876
or eax, 0xffffffff
lea ecx, [ebp - 0xd98]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x28], ebx
push 4
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x10031949
or esi, 0xffffffff
push dword [ebp - 0x10]
lea ecx, [ebp - 0xd98]
call fcn.10017169
mov dword [eax], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003192b
push 2
xor eax, eax
pop esi
mov dword [ebp - 0x48], eax
jmp 0x100319a0
mov dword [ebp - 0x3c], 0xda5043c4
mov dword [ebp - 0x4c], 0xfffffffa
cmp dword [ebp - 0x3c], eax
jne 0x1003199a
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
mov eax, dword [ebp - 0x48]
setg dl
xor ebx, ebx
cmp edx, 0x39e
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor ebx, ebx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
inc ebx
mov dword [ebp - 0x3c], ebx
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 8
je 0x1003194e
mov dword [ebp - 0x28], eax
jmp 0x100319bc
push dword [ebp - 0x28]
call fcn.10017169
mov dword [eax], 0x13b28858
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
lea ecx, [ebp - 0xd98]
jl 0x100319ab
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10017164
push 4
pop eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0xf2c]
mov dword [ebp - 0x40], 0xf112
mov dword [ebp - 0x40], 0x8901f2c2
mov dword [ebp - 0x40], 0x3fa75c19
mov dword [ebp - 0x40], 0xfddd3f46
mov dword [ebp - 0x40], esi
push eax
call fcn.100170df
push 6
pop eax
mov dword [ebp - 4], eax
xor eax, eax
push 3
mov dword [ebp - 0x40], 0x4e665969
pop esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x10], eax
jmp 0x10031a2f
push dword [ebp - 0x10]
call fcn.10017169
mov dword [eax], 0x1449c9fb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
lea ecx, [ebp - 0xf2c]
jl 0x10031a1e
inc dword [ebp - 0x4c]
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10017164
push esi
lea ecx, [ebp - 0x904]
call fcn.100170df
lea eax, [ebp - 0x1260]
mov dword [ebp - 4], 7
movdqa xmm0, xmmword [0x10007b20]
lea ecx, [ebp - 0x1438]
push eax
lea eax, [ebp - 0x1270]
push eax
movdqu xmmword [ebp - 0x1270], xmm0
call fcn.10017178
lea ecx, [ebp - 0x2bd]
mov esi, eax
call fcn.10008a53
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x137c]
push dword [esi]
call fcn.1001713e
xor eax, eax
mov dword [ebp - 0x10], 0x8094a188
mov dword [ebp - 0x10], eax
jmp 0x10031acb
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10031ac8
push 0x699
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x10031ab1
lea ecx, [ebp - 0x137c]
call fcn.10017164
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x10031b00
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x85c], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10031ae7
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x10031b1c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x904]
call fcn.10017169
mov dword [eax], 0x6b7d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10031b05
push 3
lea ecx, [ebp - 0x200]
call fcn.100170df
mov byte [ebp - 4], 8
xor eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], eax
jmp 0x10031b4e
push dword [ebp - 0x10]
call fcn.10017169
mov dword [eax], 0x27cb3f4f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
lea ecx, [ebp - 0x200]
jl 0x10031b3d
push 2
pop esi
push esi
call fcn.10017169
cmp dword [eax], 0
je 0x10031c29
xor eax, eax
mov dword [ebp - 0x10], 0xdcba
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x200]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], ebx
push ebx
call fcn.10017169
mov esi, eax
lea ecx, [ebp - 0x200]
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [esi]
xor edx, edx
push 2
pop esi
cmp ecx, dword [eax]
setl dl
cmp dword [ebp - 0x28], edx
jne 0x10031bb7
push esi
lea ecx, [ebp - 0x200]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x200]
mov eax, dword [ebp - 0x10]
push esi
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x200]
push esi
call fcn.10017169
push esi
lea ecx, [ebp - 0x200]
call fcn.10017169
push ebx
lea ecx, [ebp - 0x200]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x200]
push ebx
call fcn.10017169
push esi
lea ecx, [ebp - 0x200]
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x200]
push eax
call fcn.10017169
xor ecx, ecx
cmp dword [eax], 0xfffb
sete cl
mov dword [ebp - 0x30], ecx
jmp 0x10031c70
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x10031c6a
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10031c49
push eax
push 0x20ba
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SignalObjectAndWait]
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10031c67
push eax
push eax
push 0xb6d
push 0x211e
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x1c
jl 0x10031c30
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 7
call fcn.10017164
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x10031ca9
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x1c]
cmp eax, 7
jbe 0x10031c9c
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x24], eax
je 0x10031cab
mov eax, ebx
cmp eax, dword [ebp - 0x85c]
jne 0x10031d9f
xor eax, eax
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x4c], 0xe868e013
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x854]
setle dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setne bl
xor ecx, ecx
cmp ebx, eax
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x10031cfa
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x10031cfa
xor ebx, ebx
mov edx, eax
inc ebx
jmp 0x10031cff
xor ebx, ebx
inc ebx
mov edx, ebx
mov eax, dword [ebp - 0x85c]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x4380
setg al
imul eax, eax, 0xfff7
test eax, eax
jne 0x10031d24
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x10031d32
mov esi, eax
cmp dword [ebp - 0x20], eax
je 0x10031d34
mov esi, ebx
push 2
pop ecx
push ecx
lea ecx, [ebp - 0x904]
call fcn.10017169
xor edx, edx
push 2
cmp esi, dword [eax]
mov eax, dword [ebp - 0x28]
setge dl
sub edx, 0x426f
neg edx
pop esi
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x854]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x1c]
add eax, edx
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x4c], 0x9e820f9
mov eax, dword [ebp - 0x4c]
cmp eax, 0x49a2f381
setl cl
mov dword [ebp - 0x24], ecx
jmp 0x10031e02
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x10031dfd
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jg 0x10031dfa
mov dword [ebp - 0x10], eax
jmp 0x10031dc4
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x134c], 0x6409ef32
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10031db3
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x904]
call fcn.10017169
cmp dword [eax], 0
jne 0x10031df8
mov eax, dword [ebp - 0x1c]
push 0
mov eax, dword [ebp + eax*4 - 0x85c]
mov dword [ebp - 0x134c], eax
inc dword [ebp - 0x24]
pop eax
cmp dword [ebp - 0x24], esi
jle 0x10031dae
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x10031da6
or eax, 0xffffffff
lea ecx, [ebp - 0x904]
mov dword [ebp - 4], eax
call fcn.10017164
push esi
lea ecx, [ebp - 0x160]
call fcn.100170df
push 9
pop eax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0xcf0]
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x4c], 5
push ebx
call fcn.100170df
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xb88]
mov dword [ebp - 0x2c], 0xfffe
push esi
call fcn.100170df
mov byte [ebp - 4], 0xb
xor eax, eax
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x10031e9b
mov ebx, 0xffff
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x160]
call fcn.10017169
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10031e7e
xor ebx, ebx
xor eax, eax
inc ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x10031ebd
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xcf0]
call fcn.10017169
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10031ea3
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x10031ee3
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xb88]
call fcn.10017169
mov dword [eax], 0xaf2c67a9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10031ec5
xor eax, eax
push eax
lea ecx, [ebp - 0x160]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x160]
xor eax, eax
push eax
call fcn.10017169
push ebx
lea ecx, [ebp - 0x160]
call fcn.10017169
push ebx
lea ecx, [ebp - 0x160]
call fcn.10017169
push ebx
lea ecx, [ebp - 0x160]
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x160]
push eax
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x160]
mov eax, dword [ebp - 0x10]
push ebx
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x160]
push eax
call fcn.10017169
push ebx
lea ecx, [ebp - 0x160]
call fcn.10017169
lea ecx, [ebp - 0x160]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x160]
push ebx
call fcn.10017169
lea ecx, [ebp - 0xcf0]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [ebp - 0x4c]
mov dword [eax], ecx
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10031fa8
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x38]
lea ecx, [ebp - 0x160]
push ebx
call fcn.10017169
mov ecx, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x38]
push ebx
add ecx, dword [eax]
mov eax, 0xffff
cmp eax, ecx
lea ecx, [ebp - 0x160]
sbb esi, esi
neg esi
call fcn.10017169
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
cmp esi, ecx
lea ecx, [ebp - 0xb88]
setg bl
imul ebx, dword [eax]
xor eax, eax
inc eax
push eax
call fcn.10017169
lea ecx, [ebp - 0xb88]
mov dword [eax], ebx
dec dword [ebp - 0x44]
call fcn.10017164
lea ecx, [ebp - 0xcf0]
call fcn.10017164
or eax, 0xffffffff
lea ecx, [ebp - 0x160]
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x48], 0x42c70bb7
lea ecx, [ebp - 0x1060]
push 4
call fcn.100170df
mov dword [ebp - 4], 0xc
xor eax, eax
mov dword [ebp - 0x30], 0xd9c7279c
xor ebx, ebx
mov dword [ebp - 0x18], eax
inc ebx
cmp dword [ebp - 0x18], 3
jge 0x10032064
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x13c4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003204f
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x1003208c
push dword [ebp - 0x18]
lea ecx, [ebp - 0x1060]
call fcn.10017169
mov dword [eax], 0xf5aee0cd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1003206d
xor eax, eax
push 2
mov dword [ebp - 0x48], eax
pop esi
jmp 0x100320c0
mov dword [ebp - 0x20], 0xff55e00f
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x20], eax
jl 0x100320bd
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x100320b8
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x100320a3
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], esi
jle 0x10032094
mov dword [ebp - 0x48], esi
cmp dword [ebp - 0x48], eax
jl 0x10032129
jmp 0x100320d1
xor eax, eax
mov dword [ebp - 0x40], 0xfffffffa
mov dword [ebp - 0x4c], 0xc8b9ba5e
mov dword [ebp - 0x10], eax
jmp 0x100320f5
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x15c0], 0x5a8b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100320e4
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x4c]
sub eax, 9
sub eax, dword [ebp - 0x13c0]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], al
je 0x10032124
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
dec dword [ebp - 0x48]
jns 0x100320cf
or eax, 0xffffffff
lea ecx, [ebp - 0x1060]
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x18], ebx
xor eax, eax
mov dword [ebp - 0x44], 0xda8e97ee
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10032166
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1038], 0xbaf43b7c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1003214e
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], eax
jl 0x100321fc
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10032195
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x788], 0xc5534bf8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1003217d
xor eax, eax
mov dword [ebp - 0x788], 3
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jg 0x100321f3
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x100321e6
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x100321e1
push 0x2660
push 0xb9f
push 0x2bf
push 0x1c52
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_IntersectClipRect]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x100321b2
mov eax, dword [ebp - 0x44]
inc dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp - 0x10], eax
jle 0x100321a7
dec dword [ebp - 0x44]
jns 0x10032172
or eax, 0xffffffff
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0xba0]
mov dword [ebp - 0x28], ebx
push 4
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 0xd
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x1003224c
or esi, 0xffffffff
push dword [ebp - 0x10]
lea ecx, [ebp - 0xba0]
call fcn.10017169
mov dword [eax], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003222e
push 2
xor eax, eax
pop esi
mov dword [ebp - 0x48], eax
jmp 0x100322a3
mov dword [ebp - 0x3c], 0xda5043c4
mov dword [ebp - 0x4c], 0xfffffffa
cmp dword [ebp - 0x3c], eax
jne 0x1003229d
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
mov eax, dword [ebp - 0x48]
setg dl
xor ebx, ebx
cmp edx, 0x39e
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor ebx, ebx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
inc ebx
mov dword [ebp - 0x3c], ebx
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 8
je 0x10032251
mov dword [ebp - 0x28], eax
jmp 0x100322bf
push dword [ebp - 0x28]
call fcn.10017169
mov dword [eax], 0x13b28858
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
lea ecx, [ebp - 0xba0]
jl 0x100322ae
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x40], 0xf112
lea ecx, [ebp - 0xf44]
mov dword [ebp - 0x40], 0x8901f2c2
mov dword [ebp - 0x40], 0x3fa75c19
push 4
mov dword [ebp - 0x40], 0xfddd3f46
mov dword [ebp - 0x40], esi
pop esi
push esi
call fcn.100170df
mov dword [ebp - 4], 0xe
xor eax, eax
mov dword [ebp - 0x40], 0x4e665969
mov dword [ebp - 0x4c], 3
mov dword [ebp - 0x10], eax
jmp 0x10032331
push dword [ebp - 0x10]
call fcn.10017169
mov dword [eax], 0x1449c9fb
inc dword [ebp - 0x10]
lea ecx, [ebp - 0xf44]
cmp dword [ebp - 0x10], esi
jl 0x10032320
inc dword [ebp - 0x4c]
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10017164
movdqa xmm0, xmmword [0x10007b20]
lea eax, [ebp - 0x11a0]
push eax
lea eax, [ebp - 0x11b0]
mov dword [ebp - 0x2c], esi
push eax
lea ecx, [ebp - 0x1550]
movdqu xmmword [ebp - 0x11b0], xmm0
call fcn.10017178
lea ecx, [ebp - 0x281]
mov esi, eax
call fcn.10008a53
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x1394]
push dword [esi]
call fcn.1001713e
xor eax, eax
mov dword [ebp - 0x10], 0x8094a188
push 3
mov dword [ebp - 0x10], eax
pop esi
jmp 0x100323bf
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x100323bc
push 0x699
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x100323a5
lea ecx, [ebp - 0x1394]
call fcn.10017164
push esi
lea ecx, [ebp - 0xa0c]
call fcn.100170df
push esi
lea ecx, [ebp - 0x1c4]
mov dword [ebp - 4], 0xf
call fcn.100170df
mov byte [ebp - 4], 0x10
xor eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], eax
jmp 0x10032413
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c4]
call fcn.10017169
mov dword [eax], 0x27cb3f4f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x100323fc
push 2
pop ecx
push ecx
lea ecx, [ebp - 0x1c4]
call fcn.10017169
cmp dword [eax], 0
je 0x100324f0
xor eax, eax
mov dword [ebp - 0x10], 0xdcba
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], ebx
push ebx
call fcn.10017169
mov esi, eax
lea ecx, [ebp - 0x1c4]
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [esi]
xor edx, edx
push 2
pop esi
cmp ecx, dword [eax]
setl dl
cmp dword [ebp - 0x28], edx
jne 0x1003247b
push esi
lea ecx, [ebp - 0x1c4]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x10]
push esi
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c4]
push esi
call fcn.10017169
push esi
lea ecx, [ebp - 0x1c4]
call fcn.10017169
push ebx
lea ecx, [ebp - 0x1c4]
call fcn.10017169
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c4]
push ebx
call fcn.10017169
push esi
lea ecx, [ebp - 0x1c4]
call fcn.10017169
xor eax, eax
lea ecx, [ebp - 0x1c4]
push eax
call fcn.10017169
xor ecx, ecx
push 3
pop esi
cmp dword [eax], 0xfffb
sete cl
mov dword [ebp - 0x30], ecx
jmp 0x10032537
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x10032531
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032510
push eax
push 0x20ba
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SignalObjectAndWait]
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x1003252e
push eax
push eax
push 0xb6d
push 0x211e
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x1c
jl 0x100324f7
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0xf
call fcn.10017164
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x1003255e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x808], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1003254d
movdqa xmm0, xmmword [0x10007b00]
lea eax, [ebp - 0x1300]
push eax
lea eax, [ebp - 0x1310]
mov dword [ebp - 0x28], 0xc865b49d
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x1448]
mov dword [ebp - 0x38], 0xc00eadd5
push eax
movdqu xmmword [ebp - 0x1310], xmm0
call fcn.10017178
lea ecx, [ebp - 0x2be]
mov esi, eax
call fcn.10008a53
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x9dc]
push dword [esi]
call fcn.1001713e
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x9dc]
mov dword [ebp - 0x4c], 0xd6cd
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], 0xfbb9cf7d
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
xor eax, eax
push eax
call fcn.10017169
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x9dc]
mov eax, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.10017169
mov eax, dword [ebp - 0x4c]
mov ecx, ebx
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x10032609
mov ecx, eax
mov esi, dword [ebp - 0x28]
xor eax, eax
add esi, ecx
lea ecx, [ebp - 0x9dc]
push eax
call fcn.10017169
cmp dword [ebp - 0x28], ebx
sbb edx, edx
xor ecx, ecx
mov dword [eax], esi
neg edx
mov eax, 0x69438ed5
sub eax, esi
cmp edx, eax
setne cl
sub ecx, 0x479e
jne 0x1003263e
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov eax, 0xffff
sub edx, eax
mov eax, dword [ebp - 0x4c]
neg edx
push 0xfffffffffffffffd
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
xor eax, eax
inc ecx
cmp ecx, 0xfffffffb
pop ecx
setg al
cmp eax, ecx
jne 0x1003267a
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], al
je 0x1003268b
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
jmp 0x1003268b
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], al
je 0x1003268b
push eax
call dword [sym.imp.USER32.dll_CharNextW]
lea ecx, [ebp - 0x9dc]
mov byte [ebp - 4], 0xf
call fcn.10017164
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100326c4
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa0c]
call fcn.10017169
mov dword [eax], 0x6b7d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100326a5
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x100326ec
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x18]
cmp eax, 7
jbe 0x100326df
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x24], eax
je 0x100326ee
mov eax, ebx
push 2
pop esi
cmp eax, dword [ebp - 0x808]
jne 0x10032a40
mov dword [ebp - 0x1c], esi
xor eax, eax
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x30], 0xf18c9a01
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x10032730
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x538], 0x3342eb9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10032718
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x1003274b
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032748
push eax
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x10032735
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp eax, 0xfffffffe
mov eax, dword [ebp - 0x534]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, dword [ebp - 0x1c]
jl 0x1003278a
cmp dword [ebp - 0x534], eax
je 0x1003278a
mov edx, ebx
cmp dword [ebp - 0x20], eax
jne 0x1003278c
mov edx, eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 0x538]
mov eax, dword [ebp - 0x538]
setge cl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setge cl
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor eax, eax
inc edx
or ecx, 0xffffffff
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x40], 0xfffffffe
mov dword [ebp - 0x40], 9
mov dword [ebp - 0x40], 0x7ca0029b
mov dword [ebp - 0x40], 0x3617
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1003280c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1590], 0xfffffffd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100327f3
xor eax, eax
inc dword [ebp - 0x4c]
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x1003282b
push eax
push eax
push 0xb6d
push 0x211e
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov dword [ebp - 0x4c], 0xe868e013
lea ecx, [ebp - 0xf5c]
push ebx
call fcn.100170df
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x10e8]
xor eax, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x40], eax
push 3
call fcn.100170df
mov byte [ebp - 4], 0x13
xor eax, eax
mov dword [ebp - 0x28], 0xc58f5537
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x1003288a
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xf5c]
call fcn.10017169
mov dword [eax], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x1003286c
xor eax, eax
push 3
mov dword [ebp - 0x1c], eax
pop ebx
cmp dword [ebp - 0x1c], ebx
jge 0x100328ad
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x13f4], 0xfffffffc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10032895
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x100328d0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x10e8]
call fcn.10017169
and dword [eax], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x100328b5
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x10032903
mov ecx, 0x888999d9
or esi, 0xffffffff
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
inc dword [ebp - 0x28]
dec dword [ebp - 0x24]
jns 0x100328e0
mov dword [ebp - 0x28], 8
jmp 0x10032941
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jge 0x1003292c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x13f4], 0x74fd5228
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x10032914
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x1003293e
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x19
jle 0x1003290c
lea ecx, [ebp - 0x10e8]
call fcn.10017164
lea ecx, [ebp - 0xf5c]
mov byte [ebp - 4], 0xf
call fcn.10017164
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x800]
setle dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setne bl
xor ecx, ecx
cmp ebx, eax
sete cl
cmp ecx, dword [ebp - 0x18]
je 0x10032998
xor eax, eax
cmp dword [ebp - 0x48], eax
jne 0x10032998
xor ebx, ebx
mov edx, eax
inc ebx
jmp 0x1003299d
xor ebx, ebx
inc ebx
mov edx, ebx
mov eax, dword [ebp - 0x808]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x4380
setg al
imul eax, eax, 0xfff7
test eax, eax
jne 0x100329c2
mov eax, dword [ebp - 0x48]
xor eax, eax
cmp dword [ebp - 0x48], eax
jne 0x100329d0
mov esi, eax
cmp dword [ebp - 0x2c], eax
je 0x100329d2
mov esi, ebx
push 2
pop ecx
push ecx
lea ecx, [ebp - 0xa0c]
call fcn.10017169
xor edx, edx
push 2
cmp esi, dword [eax]
mov eax, dword [ebp - 0x48]
setge dl
sub edx, 0x426f
neg edx
pop esi
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
mov eax, dword [ebp - 0x48]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x800]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x18]
add eax, edx
sub eax, dword [ebp - 0x48]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], 0x9e820f9
mov eax, dword [ebp - 0x4c]
cmp eax, 0x49a2f381
setl cl
mov dword [ebp - 0x24], ecx
jmp 0x10033249
push esi
lea ecx, [ebp - 0x1078]
call fcn.100170df
xor eax, eax
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x10032a75
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1078]
call fcn.10017169
and dword [eax], 0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10032a5a
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032a8d
push 0x2254
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032aa0
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_KillTimer]
lea ecx, [ebp - 0x1078]
mov byte [ebp - 4], 0xf
call fcn.10017164
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jg 0x10033249
push 9
pop ecx
jmp 0x10032ac4
xor eax, eax
mov dword [ebp - 0x28], 0xcea5d6c0
mov dword [ebp - 0x28], eax
jmp 0x10032af2
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jne 0x10032aef
mov dword [ebp - 0x30], 0xfffffff7
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
inc dword [ebp - 0x20]
je 0x10032adb
xor eax, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jg 0x10032ad0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jg 0x1003323d
jmp 0x10032b0f
mov dword [ebp - 0x1c], 0xdd1e1e87
or ecx, 0xffffffff
mov dword [ebp - 0x20], ecx
push 6
pop ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x40], 0xc2b2a8f3
mov dword [ebp - 0x30], 0xa16747b1
mov dword [ebp - 0x38], 0x5d09421a
mov dword [ebp - 0x4c], 0x823388
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10032b63
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x280], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10032b4a
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x10032b83
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xe84], 0x45cb296a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10032b6b
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x10032ba3
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8d8], 0x50090e7a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10032b8b
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jg 0x10032d1f
mov dword [ebp - 0x20], 0xc407
lea ecx, [ebp - 0x9f4]
mov dword [ebp - 0x4c], 0x7c70ab22
push ebx
call fcn.100170df
mov byte [ebp - 4], 0x15
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0xa8c], eax
mov dword [ebp - 0xa88], eax
mov dword [ebp - 0xa84], eax
mov dword [ebp - 0xa80], eax
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10032c06
push dword [ebp - 0x10]
lea ecx, [ebp - 0x9f4]
call fcn.10017169
mov dword [eax], 0xee76373a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10032bef
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x280]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x280]
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x1c]
jne 0x10032c3a
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x280], 0
jne 0x10032c3a
xor eax, eax
mov edx, eax
jmp 0x10032c3c
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x280]
cmp edx, eax
setge cl
xor eax, eax
or edx, 0xffffffff
cmp ecx, edx
lea ecx, [ebp - 0x9f4]
setne al
mov dword [ebp - 0x4c], eax
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [ebp - 0x4c]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
cmp eax, 9
mov eax, dword [ebp - 0x280]
setle cl
xor ebx, ebx
cmp ecx, eax
mov eax, dword [ebp - 0xa88]
mov ecx, 0xb0881dda
setle bl
cmp ecx, eax
sbb eax, eax
xor edx, edx
neg eax
cmp eax, ebx
mov eax, dword [ebp - 0x280]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xd4856cd8
setne cl
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
sbb ecx, ecx
neg ecx
imul eax, ecx
cmp eax, dword [ebp - 0x1c]
jl 0x10032cd1
xor eax, eax
cmp dword [ebp - 0x280], eax
je 0x10032cd3
xor ebx, ebx
inc ebx
mov ecx, ebx
jmp 0x10032cd8
xor eax, eax
xor ebx, ebx
mov ecx, eax
inc ebx
mov eax, dword [ebp - 0x20]
sub ecx, eax
je 0x10032ced
xor eax, eax
cmp dword [ebp - 0xa84], eax
je 0x10032cef
mov esi, ebx
jmp 0x10032cf1
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x9f4]
call fcn.10017169
lea ecx, [ebp - 0x9f4]
mov byte [ebp - 4], 0xf
mov dword [eax], esi
call fcn.10017164
inc dword [ebp - 0x1c]
push 2
pop esi
cmp dword [ebp - 0x1c], esi
jle 0x10032baf
xor eax, eax
mov edx, ebx
cmp dword [ebp - 0x3c], eax
jne 0x10032d28
mov edx, eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0xe80], ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x27c]
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
cmp eax, 0xceeec855
setne cl
xor edx, edx
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x4c]
imul ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x278]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x30]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x27c]
setg dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp edx, eax
sete cl
cmp ecx, dword [ebp - 0x280]
jle 0x10032da6
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x10032da8
mov eax, ebx
mov dword [ebp - 0x8d8], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
add ecx, 6
add eax, ecx
lea ecx, [ebp - 0x5c0]
mov dword [ebp - 0x1c], eax
push esi
call fcn.100170df
xor eax, eax
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x10], eax
jmp 0x10032dea
push dword [ebp - 0x10]
call fcn.10017169
mov dword [eax], 0xfffffff7
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x5c0]
cmp dword [ebp - 0x10], esi
jl 0x10032dd9
push ebx
call fcn.10017169
and dword [eax], 0
jmp 0x10032eb0
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x3c], 0x14
cmp dword [ebp - 0x3c], 0x15
jne 0x10032ea2
xor eax, eax
mov dword [ebp - 0x44], 0xf25cbd94
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10032e44
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x798], 0x292c5eb2
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10032e2c
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xffffffe6
jg 0x10032e80
mov dword [ebp - 0x10], eax
jmp 0x10032e63
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x110c], 0xfffffffd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10032e52
mov eax, dword [ebp - 0x1108]
mov dword [ebp - 0x798], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xffffffe6
push 0
pop eax
jle 0x10032e4d
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032e95
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_RemovePropA]
xor eax, eax
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0x15
je 0x10032e1d
push ebx
lea ecx, [ebp - 0x5c0]
call fcn.10017169
dec dword [eax]
push ebx
lea ecx, [ebp - 0x5c0]
call fcn.10017169
cmp dword [eax], 0xfffffff9
jg 0x10032e03
lea ecx, [ebp - 0x5c0]
mov byte [ebp - 4], 0xf
call fcn.10017164
mov dword [ebp - 0x28], 0xd29be1d9
xor eax, eax
mov dword [ebp - 0x38], 0x34e1054
mov dword [ebp - 0x20], 0x791f
mov dword [ebp - 0x30], 0x4f20
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10032f12
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x78], 0x648261f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10032efd
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], eax
jl 0x10032f6c
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x3c], eax
jmp 0x10032f62
mov dword [ebp - 0x10], 0x9ba07e4f
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], eax
jg 0x10032f5f
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10032f4e
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], eax
jle 0x10032f26
dec dword [ebp - 0x28]
jns 0x10032f1a
mov dword [ebp - 0x38], 0x9da97273
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x78]
jle 0x10032f86
xor eax, eax
cmp dword [ebp - 0x78], eax
je 0x10032f88
mov edx, ebx
jmp 0x10032f8a
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x78]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setl cl
imul eax, ecx
test eax, eax
jne 0x10032fa5
cmp dword [ebp - 0x20], eax
je 0x10032fae
jmp 0x10032fa7
xor eax, eax
mov edx, ebx
cmp dword [ebp - 0x38], eax
jne 0x10032fb0
mov edx, eax
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x30]
add eax, edx
add eax, ecx
mov ecx, dword [ebp - 0x20]
imul ecx, eax
xor eax, eax
cmp ecx, 0xaa4f
mov ecx, dword [ebp - 0x78]
setl al
imul eax, eax, 0x66e9
sub ecx, eax
je 0x10032fe3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x10032ac2
or eax, 0xffffffff
lea ecx, [ebp - 0xa0c]
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0xa24]
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x4c], 4
push 3
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 0x17
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100332a3
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x89c], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1003328a
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100332cb
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa24]
call fcn.10017169
mov dword [eax], 0x6b7d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100332ac
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x100332f3
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x18]
cmp eax, 7
jbe 0x100332e6
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x24], eax
je 0x100332f5
mov eax, ebx
cmp eax, dword [ebp - 0x89c]
jne 0x100333e9
xor eax, eax
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0xe868e013
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
cmp ecx, eax
mov eax, dword [ebp - 0x894]
setle dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setne bl
xor ecx, ecx
cmp ebx, eax
sete cl
cmp ecx, dword [ebp - 0x18]
je 0x10033344
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x10033344
xor ebx, ebx
mov edx, eax
inc ebx
jmp 0x10033349
xor ebx, ebx
inc ebx
mov edx, ebx
mov eax, dword [ebp - 0x89c]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x4380
setg al
imul eax, eax, 0xfff7
test eax, eax
jne 0x1003336e
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x1003337c
mov esi, eax
cmp dword [ebp - 0x4c], eax
je 0x1003337e
mov esi, ebx
push 2
pop ecx
push ecx
lea ecx, [ebp - 0xa24]
call fcn.10017169
xor edx, edx
push 2
cmp esi, dword [eax]
mov eax, dword [ebp - 0x28]
setge dl
sub edx, 0x426f
neg edx
pop esi
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x894]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x18]
add eax, edx
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], 0x9e820f9
mov eax, dword [ebp - 0x20]
cmp eax, 0x49a2f381
setl cl
mov dword [ebp - 0x24], ecx
jmp 0x1003344c
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x10033447
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jg 0x10033444
mov dword [ebp - 0x10], eax
jmp 0x1003340e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1364], 0x6409ef32
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100333fd
push dword [ebp - 0x18]
lea ecx, [ebp - 0xa24]
call fcn.10017169
cmp dword [eax], 0
jne 0x10033442
mov eax, dword [ebp - 0x18]
push 0
mov eax, dword [ebp + eax*4 - 0x89c]
mov dword [ebp - 0x1364], eax
inc dword [ebp - 0x24]
pop eax
cmp dword [ebp - 0x24], esi
jle 0x100333f8
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x100333f0
or eax, 0xffffffff
lea ecx, [ebp - 0xa24]
mov dword [ebp - 4], eax
call fcn.10017164
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0xa3c]
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x4c], 4
push 3
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 0x18
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100334a6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x81c], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1003348d
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100334ce
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa3c]
call fcn.10017169
mov dword [eax], 0x6b7d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100334af
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x100334f6
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x18]
cmp eax, 7
jbe 0x100334e9
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x24], eax
je 0x100334f8
mov eax, ebx
cmp eax, dword [ebp - 0x81c]
jne 0x100335e9
xor eax, eax
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0xe868e013
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
cmp ecx, eax
mov eax, dword [ebp - 0x814]
setle dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setne bl
xor ecx, ecx
cmp ebx, eax
sete cl
cmp ecx, dword [ebp - 0x18]
je 0x10033547
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x10033547
xor ebx, ebx
mov edx, eax
inc ebx
jmp 0x1003354c
xor ebx, ebx
inc ebx
mov edx, ebx
mov eax, dword [ebp - 0x81c]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x4380
setg al
imul eax, eax, 0xfff7
test eax, eax
jne 0x10033571
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x1003357f
mov esi, eax
cmp dword [ebp - 0x4c], eax
je 0x10033581
mov esi, ebx
push 2
pop ecx
push ecx
lea ecx, [ebp - 0xa3c]
call fcn.10017169
xor edx, edx
cmp esi, dword [eax]
mov eax, dword [ebp - 0x28]
setge dl
sub edx, 0x426f
neg edx
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x814]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x18]
add eax, edx
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], 0x9e820f9
mov eax, dword [ebp - 0x20]
cmp eax, 0x49a2f381
setl cl
mov dword [ebp - 0x24], ecx
jmp 0x1003364c
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x10033647
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jg 0x10033644
mov dword [ebp - 0x10], eax
jmp 0x1003360e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1370], 0x6409ef32
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x100335fd
push dword [ebp - 0x18]
lea ecx, [ebp - 0xa3c]
call fcn.10017169
cmp dword [eax], 0
jne 0x10033642
mov eax, dword [ebp - 0x18]
push 0
mov eax, dword [ebp + eax*4 - 0x81c]
mov dword [ebp - 0x1370], eax
inc dword [ebp - 0x24]
pop eax
cmp dword [ebp - 0x24], esi
jle 0x100335f8
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x100335f0
or eax, 0xffffffff
lea ecx, [ebp - 0xa3c]
mov dword [ebp - 4], eax
call fcn.10017164
push 2
pop eax
mov esi, 0x4b733c63
lea ecx, [ebp - 0xdf8]
mov dword [ebp - 0x18], esi
push eax
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 0x19
push 2
mov dword [ebp - 0x1c], eax
pop ecx
cmp dword [ebp - 0x1c], ecx
jge 0x100336a0
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7d8], 0x4c865b49
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10033688
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ecx
jge 0x100336bc
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xe98], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x100336a8
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ecx
jge 0x100336e8
push 2
pop ebx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xdf8]
call fcn.10017169
mov dword [eax], 0xd10caad9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x100336c7
xor ebx, ebx
xor eax, eax
inc ebx
cmp dword [ebp - 0x18], eax
je 0x10033718
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setne dl
cmp edx, dword [ebp - 0x18]
jg 0x10033702
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x10033716
mov eax, ebx
jmp 0x10033718
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x7d8], ebx
cmp eax, ebx
mov eax, dword [ebp - 0x18]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
add ecx, dword [ebp - 0x18]
je 0x1003374a
mov edx, ebx
cmp dword [ebp - 0x7d8], eax
jne 0x1003374c
mov edx, eax
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setl cl
sub eax, ecx
lea ecx, [ebp - 0xdf8]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0xe94], eax
xor eax, eax
push eax
call fcn.10017169
mov ecx, dword [ebp - 0x7d8]
mov edx, eax
mov eax, 0xcecb4571
cmp eax, ecx
mov eax, 0xdd5d0881
sbb ecx, ecx
neg ecx
cmp eax, ecx
lea ecx, [ebp - 0xdf8]
sbb eax, eax
inc eax
mov dword [edx], eax
or eax, 0xffffffff
mov dword [ebp - 4], eax
call fcn.10017164
push 2
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xbb8]
pop esi
push esi
call fcn.100170df
xor eax, eax
mov dword [ebp - 4], 0x1a
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x100337df
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x84c], 0x4c865b49
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100337c7
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x100337fb
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1014], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100337e7
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x10033821
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xbb8]
call fcn.10017169
mov dword [eax], 0xd10caad9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10033803
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x10033851
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setne dl
cmp edx, dword [ebp - 0x18]
jg 0x1003383b
xor ecx, ecx
mov dword [ebp - 0x84c], ebx
cmp eax, ebx
mov eax, dword [ebp - 0x18]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
add ecx, dword [ebp - 0x18]
je 0x10033883