Function at 0x1003e556
Capabilities:
Compare security identifiers
Get common file path
Get graphical window text
Get memory capacity
Get thread local storage value
Query environment variable
Terminate process

Disassembly:
mov eax, 0x1006d5ce
call fcn.1006bcec
sub esp, 0xb8c
push ebx
push esi
push edi
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x578]
push 2
mov byte [ebp - 0x59], dl
call fcn.1002cb22
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x20], ebx
inc edx
jmp 0x1003e597
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x2c0], 0x648261f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1003e586
mov dword [ebp - 0x20], ebx
jmp 0x1003e5b4
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x578]
mov dword [eax + ecx*4], 0xe19d29be
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003e5a1
mov ecx, dword [ebp - 0x578]
mov dword [ecx + 4], ebx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [ebp + eax*4 - 0x2c0], 0xe446df37
cmp dword [ecx + 4], edx
jl 0x1003e5c3
mov dword [ecx], 0xfffffffc
lea ecx, [ebp - 0x578]
call fcn.1002d1d0
mov dword [ebp - 0x20], 0x76820624
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x34], 0xe75d5f8d
mov dword [ebp - 0x10], ebx
jmp 0x1003e615
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x680], 0xec2e0cf5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003e604
mov dword [ebp - 0x30], 0x26d4
cmp dword [ebp - 0x30], 0xdbe
jge 0x1003e7be
lea eax, [ebp - 0x8f0]
push eax
lea eax, [ebp - 0x94]
push eax
push 0x10007c34
call fcn.1005459b
add esp, 0xc
lea ecx, [ebp - 0x298]
push dword [ebp - 0x94]
call fcn.1004b6c5
xor eax, eax
mov dword [ebp - 4], ebx
mov esi, dword [ebp - 0x94]
inc eax
mov edi, eax
cmp esi, eax
jle 0x1003e6d4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xac]
push eax
push 0x10007c34
call fcn.1005459b
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0x90]
add esp, 0xc
dec eax
dec dword [ebp - 0x90]
mov dword [ebp - 0xac], eax
push ecx
imul ecx, eax, 0xc
add ecx, dword [ebp - 0x298]
call fcn.1002cdd6
imul ecx, dword [ebp - 0x90], 0xc
lea eax, [ebp - 0xac]
push eax
add ecx, dword [ebp - 0x298]
call fcn.1002cdd6
mov esi, dword [ebp - 0x94]
inc edi
cmp edi, esi
jl 0x1003e66d
push ecx
lea eax, [ebp - 0x65]
mov byte [ebp - 0x65], bl
push eax
push esi
lea ecx, [ebp - 0x86c]
call fcn.1002da9f
xor eax, eax
lea ecx, [ebp - 0x86c]
inc eax
push esi
mov byte [ebp - 4], al
call fcn.1002da1a
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], ebx
push eax
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x9c], ebx
push ebx
push eax
lea edx, [ebp - 0x298]
xor ecx, ecx
call fcn.1003e3ae
mov esi, dword [ebp - 0x94]
lea eax, [ebp - 0x66]
add esp, 0xc
mov byte [ebp - 0x66], bl
lea ecx, [ebp - 0x850]
push eax
push esi
call fcn.1002da9f
push esi
lea ecx, [ebp - 0x850]
mov byte [ebp - 4], 3
call fcn.1002da1a
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x9c]
lea edx, [ebp - 0x298]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x850]
push ebx
push eax
call fcn.1003e3ae
push dword [ebp - 0xa4]
push 0x10007b90
call fcn.100549f9
add esp, 0x18
lea ecx, [ebp - 0x850]
call fcn.1002ce96
lea ecx, [ebp - 0x86c]
call fcn.1002ce96
or eax, 0xffffffff
lea ecx, [ebp - 0x298]
mov dword [ebp - 4], eax
call fcn.1002dbc0
mov edi, dword [sym.imp.USER32.dll_SetTimer]
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 2
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
jg 0x1003e828
xor ecx, ecx
mov dword [ebp - 0x10], ecx
jmp 0x1003e7eb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x168], 0xbb11accb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003e7da
mov dword [ebp - 0x168], ecx
jmp 0x1003e816
mov byte [ebp - 0x25], cl
cmp byte [ebp - 0x25], 0
je 0x1003e810
push ecx
push 0x158c
push ecx
call ebx
push eax
call edi
xor ecx, ecx
inc dword [ebp - 0x168]
cmp dword [ebp - 0x168], 2
jle 0x1003e7f9
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jle 0x1003e7d5
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x680]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x67c]
mov dword [ebp - 0x680], esi
add dword [ebp - 0x24], 8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
lea ecx, [ebp - 0x980]
setge dl
sub esi, edx
cmp esi, 0xb82c4475
push ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x970]
push eax
push ecx
lea ecx, [ebp - 0x9dc]
movdqu xmmword [ebp - 0x980], xmm0
call fcn.1002cbd5
xor eax, eax
push 2
mov dword [ebp - 0x10], eax
pop edx
cmp dword [ebp - 0x10], edx
jge 0x1003e8a7
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8a0], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1003e88f
xor eax, eax
mov dword [ebp - 0x20], 0xffffffe9
cmp dword [ebp - 0x20], 0xf
je 0x1003e8db
xor ecx, ecx
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], eax
jmp 0x1003e8cc
mov dword [ebp - 0x34], 0xd1f2e966
inc dword [ebp - 0x34]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x1003e8bf
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xf
jne 0x1003e8b7
mov dword [ebp - 0x20], eax
jmp 0x1003e8ed
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x8a0], edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1003e8e0
lea ecx, [ebp - 0x9dc]
call fcn.1002d1d0
push 2
lea ecx, [ebp - 0x590]
call fcn.1002cb22
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x20], edx
inc ecx
jmp 0x1003e925
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x358], 0x648261f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1003e914
mov dword [ebp - 0x20], edx
jmp 0x1003e942
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x590]
mov dword [eax + ecx*4], 0xe19d29be
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003e92f
mov ecx, dword [ebp - 0x590]
mov dword [ecx + 4], edx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [ebp + eax*4 - 0x358], 0xe446df37
xor eax, eax
inc eax
cmp dword [ecx + 4], eax
jl 0x1003e951
mov dword [ecx], 0xfffffffc
lea ecx, [ebp - 0x590]
call fcn.1002d1d0
mov dword [ebp - 0x14], 0x76820624
xor ecx, ecx
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x34], 0xe75d5f8d
mov dword [ebp - 0x10], ecx
jmp 0x1003e9a8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x6b0], 0xec2e0cf5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003e997
mov dword [ebp - 0x24], ecx
jmp 0x1003ea00
mov dword [ebp - 0x10], ecx
jmp 0x1003e9c9
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x150], 0xbb11accb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003e9b8
mov dword [ebp - 0x150], ecx
jmp 0x1003e9f4
mov byte [ebp - 0x25], cl
cmp byte [ebp - 0x25], 0
je 0x1003e9ee
push ecx
push 0x158c
push ecx
call ebx
push eax
call edi
xor ecx, ecx
inc dword [ebp - 0x150]
cmp dword [ebp - 0x150], 2
jle 0x1003e9d7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jle 0x1003e9b3
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x6b0]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x6ac]
mov dword [ebp - 0x6b0], esi
add dword [ebp - 0x24], 8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
lea ecx, [ebp - 0x940]
setge dl
sub esi, edx
cmp esi, 0xb82c4475
push ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x930]
push eax
push ecx
lea ecx, [ebp - 0x9f4]
movdqu xmmword [ebp - 0x940], xmm0
call fcn.1002cbd5
push 3
lea ecx, [ebp - 0x4cc]
mov dword [ebp - 4], 5
call fcn.1002cb22
xor edx, edx
mov dword [ebp - 0x18], 0x1cecb457
mov dword [ebp - 0x10], edx
jmp 0x1003ea95
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x4cc]
mov dword [eax + ecx*4], 0x9841b3c6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003ea82
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], edx
jl 0x1003eac8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4cc]
cmp dword [eax + ecx*4], edx
jne 0x1003eac8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4cc]
cmp dword [eax + ecx*4], edx
jne 0x1003eac8
dec dword [ebp - 0x18]
jns 0x1003eaa7
lea ecx, [ebp - 0x4cc]
call fcn.1002d1d0
or edi, 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x10], ecx
jmp 0x1003eaf1
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa1c], 0x8b0d193e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003eae0
mov dword [ebp - 0x10], ecx
jmp 0x1003eb09
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2a8], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003eafc
mov dword [ebp - 0x2a0], 0xffffffe8
jmp 0x1003eb3c
cmp byte [ebp - 0x25], 0
je 0x1003eb36
push ecx
push ecx
push 0x270c
push 0x76a
push ecx
call dword [sym.imp.USER32.dll_InsertMenuA]
xor ecx, ecx
inc dword [ebp - 0x2a0]
cmp dword [ebp - 0x2a0], 0xffffffec
mov byte [ebp - 0x25], cl
jle 0x1003eb1b
cmp byte [ebp - 0x25], 0
je 0x1003eb57
call ebx
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
xor ebx, ebx
mov dword [ebp - 0x10], ebx
jmp 0x1003eb6f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8d8], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003eb5e
mov dword [ebp - 0x14], 0xffffffe9
jmp 0x1003f128
xor eax, eax
lea ecx, [ebp - 0x3b8]
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], 0x5299dada
push eax
call fcn.1002cb22
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x3c], 0xdbca
push 2
call fcn.1002cb22
xor edx, edx
mov dword [ebp - 0x34], 0xfffe
mov dword [ebp - 0x2c], ebx
inc edx
jmp 0x1003ebcb
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x54], ebx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x1003ebc1
mov dword [ebp - 0x2c], ebx
jmp 0x1003ebe4
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3b8]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x1003ebd5
mov dword [ebp - 0x2c], ebx
jmp 0x1003ec01
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4d8]
mov dword [eax + ecx*4], 0x27e80a7c
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x1003ebee
mov dword [ebp - 0x2c], ebx
jmp 0x1003ec1d
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x3a0], 0xff51885a
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x1003ec0c
mov dword [ebp - 0x20], ebx
jmp 0x1003ec9f
mov dword [ebp - 0x30], 6
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x54], ebx
je 0x1003ec65
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3b8]
mov dword [eax], 0xfaa2
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x54], ebx
je 0x1003ec65
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x54], ebx
je 0x1003ec65
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x54], ebx
jne 0x1003ec67
mov edx, ebx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x54]
cmp edx, eax
setge cl
sub ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x3c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
inc edx
mov dword [ebp - 0x30], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x54]
cmp eax, edx
mov eax, dword [ebp - 0x4d8]
sete cl
mov dword [eax], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1003ec28
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x54], ebx
je 0x1003ecde
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov eax, dword [ebp - 0x3b8]
imul edx, dword [eax]
mov dword [eax], edx
mov eax, dword [ebp - 0x3c]
cmp edx, eax
mov eax, dword [ebp - 0x3a0]
setne cl
sub eax, ecx
dec dword [ebp - 0x3a0]
cmp eax, 0xb54c
je 0x1003ecde
xor eax, eax
inc eax
jmp 0x1003ece0
mov eax, ebx
cmp eax, dword [ebp - 0x54]
jne 0x1003ece8
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x4d8]
mov eax, dword [ebp - 0x4d8]
mov dword [eax], 7
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3a0]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
call fcn.1002d1d0
lea ecx, [ebp - 0x3b8]
mov byte [ebp - 4], 5
call fcn.1002d1d0
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], 3
jg 0x1003f125
push 3
lea ecx, [ebp - 0x240]
call fcn.1002cb22
xor eax, eax
mov byte [ebp - 4], 7
inc eax
mov dword [ebp - 0x2c], 0x74dd0324
push eax
lea ecx, [ebp - 0xcc]
call fcn.1002cb22
mov byte [ebp - 4], 8
mov dword [ebp - 0x34], 0x3b0639e6
mov dword [ebp - 0x20], ebx
jmp 0x1003ed76
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x1003ed67
xor edx, edx
mov dword [ebp - 0x20], ebx
inc edx
jmp 0x1003ed97
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xcc]
mov dword [eax + ecx*4], 0x4c8d3c89
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1003ed84
mov eax, dword [ebp - 0x240]
xor ecx, ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x2c]
test eax, eax
setns cl
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xcc]
mov dword [eax], ecx
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], ebx
jl 0x1003ef87
mov ebx, dword [ebp - 0x240]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x24], 8
lea ecx, [ebp - 0x6a4]
push 3
call fcn.1002cb22
xor edx, edx
mov byte [ebp - 4], 9
mov dword [ebp - 0x10], edx
jmp 0x1003ee03
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x6a4]
mov dword [eax + ecx*4], 0x4ab653b1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003edf0
mov byte [ebp - 0x25], dl
cmp byte [ebp - 0x25], dl
je 0x1003ee1a
push edx
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xcc]
cmp dword [eax + ecx*4], edx
je 0x1003ef01
push 4
lea ecx, [ebp - 0x5a8]
call fcn.1002cb22
xor ebx, ebx
mov dword [ebp - 0x30], 0x51dd2e91
mov dword [ebp - 0x10], ebx
jmp 0x1003ee5a
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x5a8]
mov dword [eax + ecx*4], 0x5bb08661
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003ee47
mov edi, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xcc]
cmp dword [ecx + eax*4], ebx
mov eax, dword [ebp - 0x240]
setne dl
xor ebx, ebx
cmp dword [ecx + edi*4], edx
mov ecx, dword [ebp - 0x2c]
setne bl
xor edx, edx
sub ebx, dword [eax + esi*4]
mov eax, dword [ebp - 0x40]
cmp ebx, dword [eax + 4]
mov eax, dword [ebp - 0xcc]
setg dl
xor ebx, ebx
mov dword [eax + ecx*4], edx
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x240]
cmp ecx, dword [eax + edx*4]
mov ecx, dword [ebp - 0x5a8]
setne bl
or eax, 0xffffffff
neg ebx
cmp eax, ebx
sbb eax, eax
inc eax
mov dword [ecx + 8], eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 5
jl 0x1003eeeb
xor eax, eax
cmp dword [ecx + 8], eax
je 0x1003eeee
xor eax, eax
inc eax
lea ecx, [ebp - 0x5a8]
mov dword [ebp - 0x30], eax
call fcn.1002d1d0
mov ebx, dword [ebp - 0x40]
jmp 0x1003ef6d
mov dword [ebp - 0x18], 0xfd996437
mov dword [ebp - 0x34], 0xba796726
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xcc]
cmp dword [eax], edx
je 0x1003ef1f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], 0x40b319b
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6a4]
mov dword [eax + 8], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xcc]
cmp dword [eax], edx
mov eax, dword [ebp - 0x18]
setne cl
add eax, ecx
xor ecx, ecx
cmp eax, dword [ebx + 4]
setl cl
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xcc]
mov dword [eax + edx*4], ecx
lea ecx, [ebp - 0x6a4]
mov byte [ebp - 4], 8
call fcn.1002d1d0
dec dword [ebp - 0x2c]
jns 0x1003edd1
xor ebx, ebx
lea ecx, [ebp - 0xcc]
call fcn.1002d1d0
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 5
call fcn.1002d1d0
xor eax, eax
mov dword [ebp - 0x34], 0xd1f2e966
inc eax
lea ecx, [ebp - 0x7c8]
push eax
call fcn.1002cb22
mov byte [ebp - 4], 0xa
xor edx, edx
mov dword [ebp - 0x10], 0x2c70bb74
inc edx
mov dword [ebp - 0x10], ebx
jmp 0x1003efdd
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x7c8]
mov dword [eax + ecx*4], 0x2062
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1003efca
mov byte [ebp - 0x25], bl
mov dword [ebp - 0x30], 0x138b
cmp dword [ebp - 0x30], 0x12e8
jge 0x1003f09e
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x140]
push eax
push 0x10007fa0
call fcn.1005459b
mov edi, dword [ebp - 0x2d0]
lea ecx, [ebp - 0x5c0]
add esp, 0xc
inc edi
add edi, dword [ebp - 0x140]
push edi
call fcn.1002cb22
mov ecx, ebx
mov ebx, dword [ebp - 0x5c0]
test edi, edi
jle 0x1003f045
lea eax, [ecx + 1]
mov dword [ebx + ecx*4], eax
mov ecx, eax
cmp ecx, edi
jl 0x1003f039
mov eax, dword [ebp - 0x140]
mov edx, dword [ebp - 0x5bc]
lea esi, [ebx + eax*4]
jmp 0x1003f068
sub edx, 4
cmp esi, edx
je 0x1003f06c
mov ecx, dword [esi]
mov eax, dword [edx]
mov dword [esi], eax
add esi, 4
mov dword [edx], ecx
cmp esi, edx
jne 0x1003f056
xor esi, esi
test edi, edi
jle 0x1003f086
push dword [ebx + esi*4]
push 0x10007bb0
call fcn.100549f9
inc esi
pop ecx
pop ecx
cmp esi, edi
jl 0x1003f072
push 0x10007add
call fcn.10054d82
pop ecx
lea ecx, [ebp - 0x5c0]
call fcn.1002d1d0
xor ebx, ebx
cmp byte [ebp - 0x25], 0
je 0x1003f0af
push 0x444
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x10], ebx
jmp 0x1003f0fe
mov dword [ebp - 0x24], 9
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jl 0x1003f0de
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f0d9
push ebx
push 0x5a8
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
dec dword [ebp - 0x24]
jns 0x1003f0c3
mov dword [ebp - 0x24], ebx
jmp 0x1003f0f6
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f0f3
push ebx
call dword [sym.imp.USER32.dll_RegisterClassW]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x1003f0e3
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x1003f0b4
lea ecx, [ebp - 0x7c8]
mov byte [ebp - 4], 5
call fcn.1002d1d0
inc dword [ebp - 0x34]
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jle 0x1003ed30
or edi, 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xf
jne 0x1003eb81
mov dword [ebp - 0x30], ebx
xor edx, edx
inc edx
xor ecx, ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x10], 0x7182b47
mov dword [ebp - 0x38], 0x17c7747b
mov dword [ebp - 0x34], 0x1b583dc0
mov dword [ebp - 0x40], 0x31615e82
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x18], 0x213072c0
inc dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
cmp eax, 0x28cae2fe
setg cl
cmp dword [ebp - 0x3c], ecx
jle 0x1003f180
mov esi, edx
cmp dword [ebp - 0x10], ebx
jne 0x1003f182
mov esi, ebx
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setg dl
xor ebx, ebx
add edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
cmp esi, edx
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x34], ecx
inc edx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
cmp eax, edx
setg cl
xor ebx, ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ebx
jmp 0x1003f423
mov dword [ebp - 0x20], 0x5c68ec0a
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x20], 0xffffffef
cmp dword [ebp - 0x20], 0x1d
je 0x1003f3d1
mov byte [ebp - 0x25], bl
mov dword [ebp - 0x30], 0x17ba
cmp dword [ebp - 0x30], 0xef3
jge 0x1003f3b1
push ebx
push ebx
lea ecx, [ebp - 0x388]
mov dword [ebp - 0x378], ebx
mov dword [ebp - 0x374], ebx
call fcn.1002d74b
lea edx, [ebp - 0x388]
mov byte [ebp - 4], 0xb
mov ecx, 0x1065dcc0
call fcn.1003165a
push ebx
push ebx
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x19c], ebx
call fcn.1002d74b
lea edx, [ebp - 0x1b0]
mov byte [ebp - 4], 0xc
mov ecx, 0x1065dcc0
call fcn.1003165a
mov edx, ebx
mov edi, ebx
cmp dword [ebp - 0x378], edx
jbe 0x1003f29a
cmp dword [ebp - 0x374], 0x10
lea ecx, [ebp - 0x388]
push 1
cmovae ecx, dword [ebp - 0x388]
or eax, 0xffffffff
cmp byte [ecx + edx], 0x2b
pop ecx
cmove eax, ecx
add edi, eax
inc edx
cmp edx, dword [ebp - 0x378]
jb 0x1003f26e
mov ecx, ebx
mov edx, ebx
mov esi, ebx
cmp dword [ebp - 0x1a0], ecx
jbe 0x1003f306
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1b0]
cmp byte [eax + ecx], 0x2b
jne 0x1003f2c5
inc edx
jmp 0x1003f2fd
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1b0]
cmp byte [eax + ecx], 0x2d
jne 0x1003f2e2
dec edx
jmp 0x1003f2fd
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1b0]
cmp byte [eax + ecx], 0x3f
jne 0x1003f2fd
inc esi
inc ecx
cmp ecx, dword [ebp - 0x1a0]
jb 0x1003f2a8
sub edi, edx
push edi
call fcn.10054f22
pop ecx
cmp eax, esi
jg 0x1003f386
mov edx, eax
and edx, 0x80000001
jns 0x1003f322
dec edx
or edx, 0xfffffffe
inc edx
mov ecx, esi
and ecx, 0x80000001
jns 0x1003f331
dec ecx
or ecx, 0xfffffffe
inc ecx
cmp edx, ecx
jne 0x1003f386
add eax, esi
mov ecx, esi
cdq
sub eax, edx
mov edx, eax
sar edx, 1
call fcn.1003e460
mov ecx, edx
movapd xmm2, xmm0
call fcn.1003e460
mov ecx, esi
sub ecx, edx
divsd xmm2, xmm0
call fcn.1003e460
divsd xmm2, xmm0
test esi, esi
jle 0x1003f370
mulsd xmm2, qword [0x10008340]
dec esi
jne 0x1003f365
push ecx
push ecx
movsd qword [esp], xmm2
push 0x10007fb0
call fcn.100549f9
add esp, 0xc
jmp 0x1003f391
push 0x10007fa8
call fcn.10054d82
pop ecx
xor eax, eax
lea ecx, [ebp - 0x1b0]
push ebx
inc eax
push eax
call fcn.1002d74b
xor eax, eax
lea ecx, [ebp - 0x388]
push ebx
inc eax
push eax
call fcn.1002d74b
cmp byte [ebp - 0x25], 0
je 0x1003f3be
push ebx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1d
jne 0x1003f1f1
xor edx, edx
inc edx
or edi, 0xffffffff
mov dword [ebp - 0x20], 0xffffffe7
jmp 0x1003f40a
mov dword [ebp - 0x34], 0xb87d0fa5
mov ecx, ebx
cmp dword [ebp - 0x34], ebx
je 0x1003f3ea
mov ecx, edx
mov eax, dword [ebp - 0x20]
xor edx, edx
add eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
push 1
setl dl
xor ecx, ecx
cmp eax, edx
pop edx
setl cl
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jne 0x1003f3da
mov eax, dword [ebp - 0x14]
push 1
pop edx
mov dword [ebp + eax*4 - 0x8d8], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003f1cf
lea ecx, [ebp - 0x9f4]
mov dword [ebp - 4], edi
call fcn.1002d1d0
xor ecx, ecx
mov dword [ebp - 0x2c], edi
push 0xfffffffffffffff2
inc ecx
pop esi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], 0xffffffe6
push 0x11
pop edi
jle 0x1003f4e2
or eax, 0xffffffff
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ebx
jmp 0x1003f473
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2bc], 0xbe1d925b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003f462
mov dword [ebp - 0x2bc], 0xfffffff1
jmp 0x1003f4a2
mov dword [ebp - 0x10], 0x13
jmp 0x1003f496
cmp dword [ebp - 0x2c], ebx
jne 0x1003f49c
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff0
jg 0x1003f48e
inc dword [ebp - 0x2bc]
cmp dword [ebp - 0x2bc], edi
mov dword [ebp - 0x10], ebx
jge 0x1003f485
jmp 0x1003f4cc
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f4c9
push 0x2471
push 0x2d5
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe5
je 0x1003f4af
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffe6
jg 0x1003f457
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x2c], ebx
je 0x1003f598
mov dword [ebp - 0x30], 0xafd77ccc
mov dword [ebp - 0x10], ebx
jmp 0x1003f508
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x510], 0x37a5b7d8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003f4f7
mov dword [ebp - 0x2c], 3
cmp dword [ebp - 0x2c], ebx
jl 0x1003f5b6
mov dword [ebp - 0x10], ebx
jmp 0x1003f534
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x330], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1003f523
mov eax, dword [ebp - 0x2c]
xor edx, edx
push 1
mov eax, dword [ebp + eax*4 - 0x510]
mov eax, dword [ebp - 0x504]
mov eax, dword [ebp - 0x510]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x510]
mov eax, dword [ebp - 0x34]
cmp eax, ecx
setl dl
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x50c]
mov eax, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setg cl
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x2c]
pop ecx
jns 0x1003f51e
jmp 0x1003f5b6
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f5b6
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
lea ecx, [ebp - 0x9c0]
mov dword [ebp - 0x14], 0x76820624
push ecx
lea eax, [ebp - 0x9b0]
xorps xmm0, xmm0
push eax
push ecx
lea ecx, [ebp - 0x9e8]
movdqu xmmword [ebp - 0x9c0], xmm0
call fcn.1002cbd5
push 2
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x1003f5fb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8b4], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1003f5ea
mov dword [ebp - 0x14], 0xffffffe9
cmp dword [ebp - 0x14], 0xf
je 0x1003f634
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ebx
jmp 0x1003f625
mov dword [ebp - 0x34], 0xd1f2e966
inc dword [ebp - 0x34]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x1003f618
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xf
jne 0x1003f610
mov dword [ebp - 0x14], ebx
jmp 0x1003f646
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x8b4], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1003f639
lea ecx, [ebp - 0x9e8]
call fcn.1002d1d0
mov dword [ebp - 0x44], 0xfffffffc
lea ecx, [ebp - 0x7e0]
mov dword [ebp - 0x44], 0xa76aabec
push 0xfffffffffffffffd
mov dword [ebp - 0x44], 0x1bd97a88
pop edi
mov dword [ebp - 0x44], 0xc9f3690f
mov dword [ebp - 0x44], 0xf2fb5a5e
mov dword [ebp - 0x44], edi
push 3
call fcn.1002cb22
push 2
lea ecx, [ebp - 0x704]
mov dword [ebp - 4], 0xd
call fcn.1002cb22
mov dword [ebp - 0x14], ebx
jmp 0x1003f6b8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x7e0]
mov dword [eax + ecx*4], 0xe4b7834d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1003f6a5
mov dword [ebp - 0x14], ebx
jmp 0x1003f6d6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x704]
mov dword [eax + ecx*4], 0x2e65
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003f6c3
mov eax, dword [ebp - 0x704]
lea ecx, [ebp - 0x704]
inc dword [eax]
call fcn.1002d1d0
or eax, 0xffffffff
lea ecx, [ebp - 0x7e0]
mov dword [ebp - 4], eax
call fcn.1002d1d0
mov dword [ebp - 0x10], 0xd1e1e87d
mov dword [ebp - 0x10], ebx
jmp 0x1003f719
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa70], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1003f70c
mov dword [ebp - 0x10], ebx
jmp 0x1003f799
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f77c
push 0x1068
push 0x1a54
push 0xcbc
push 0x16d
push 0x1887
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
push 0xbd8
push 0x13bf
push 0x1489
push 0x226b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_StretchBlt]
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x1003f796
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push ebx
push ebx
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamA]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x1003f724
xor ecx, ecx
or edi, 0xffffffff
mov dword [ebp - 0x20], edi
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x20], 0xffffffe6
jle 0x10040389
jmp 0x1003f7bd
mov dword [ebp - 0x40], 0xfffffff7
push 5
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x40], ebx
je 0x1003f7de
mov eax, dword [ebp - 0x18]
neg eax
mov eax, ecx
jne 0x1003f7e0
mov eax, ebx
cmp eax, dword [ebp - 0x18]
jne 0x1003f811
mov dword [ebp - 0x30], 0xe8588d0d
mov dword [ebp - 0x10], ebx
jmp 0x1003f7fe
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2e0], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1003f7f1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2e0], eax
jmp 0x1003f8b9
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], 0x9973063d
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], 0xfffffff7
mov dword [ebp - 0x10], ebx
jmp 0x1003f83b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x960], 0xe8b01213
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1003f82a
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x960]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
imul eax, edx
mov dword [ebp - 0x958], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x40]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0xfffffffa
setne al
xor edx, edx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x38]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0x67f6
setne al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], edi
lea ecx, [ebp - 0x3d0]
push 2
call fcn.1002cb22
mov dword [ebp - 4], 0xe
mov dword [ebp - 0x14], 5
mov dword [ebp - 0x24], 0x10e6b6cd
mov dword [ebp - 0x30], 0xfffffffe
mov dword [ebp - 0x30], 0xeccdf493
mov dword [ebp - 0x10], ebx
jmp 0x1003f904
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3d0]
mov dword [eax + ecx*4], 0x2250db85
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1003f8f1
mov eax, dword [ebp - 0x3d0]
mov ecx, dword [eax + 4]
xor eax, eax
test ecx, ecx
setne al
add eax, ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], ebx
jmp 0x1003fb0d
push 2
lea ecx, [ebp - 0x484]
call fcn.1002cb22
push 3
lea ecx, [ebp - 0x5d8]
mov byte [ebp - 4], 0xf
call fcn.1002cb22
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1003f96e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x484]
mov dword [eax + ecx*4], 1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003f95b
mov dword [ebp - 0x14], ebx
jmp 0x1003f98c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5d8]
mov dword [eax + ecx*4], 0x5a42
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1003f979
mov dword [ebp - 0x14], ebx
jmp 0x1003f9c5
cmp dword [ebp - 0x24], 0xffffffef
je 0x1003f92e
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 4], edi
call fcn.1002d1d0
push 2
lea ecx, [ebp - 0x4b4]
call fcn.1002cb22
push 4
lea ecx, [ebp - 0x7f8]
mov dword [ebp - 4], 0x10
call fcn.1002cb22
mov dword [ebp - 0x30], 0x1b19
cmp dword [ebp - 0x30], 0x1215
jge 0x1003fce6
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x64]
push eax
push 0x10007fb8
call fcn.1005459b
mov edx, dword [ebp - 0x64]
add esp, 0xc
mov eax, dword [ebp - 0x8c]
mov ecx, edx
imul ecx, edx
cmp ecx, eax
jge 0x1003fb94
push 0x10007bac
call fcn.10054d82
pop ecx
jmp 0x1003fce6
jne 0x1003fbd5
mov edi, ebx
test edx, edx
jle 0x1003fce6
mov esi, ebx
test edx, edx
jle 0x1003fbc0
test esi, esi
je 0x1003fbb2
push 0x20
call fcn.10054d79
pop ecx
push 0x31
call fcn.10054d79
inc esi
pop ecx
cmp esi, dword [ebp - 0x64]
jl 0x1003fba6
push 0xa
call fcn.10054d79
mov edx, dword [ebp - 0x64]
inc edi
pop ecx
cmp edi, edx
jl 0x1003fba0
jmp 0x1003fce6
xor ecx, ecx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x10], ecx
mov esi, ebx
mov dword [ebp - 0x3c], ecx
test eax, eax
jle 0x1003fc89
and dword [ebp - 0x18], ecx
and dword [ebp - 0x24], ecx
xor edi, edi
cmp dword [ebp - 0x38], ebx
jne 0x1003fc0a
cmp esi, dword [ebp - 0x10]
jne 0x1003fc0a
mov edx, dword [ebp - 0x24]
dec eax
mov byte [esi + edx + 0x109c9660], 1
jmp 0x1003fc2b
mov edx, dword [ebp - 0x24]
xor ecx, ecx
inc ecx
sub eax, 2
mov byte [esi + edx + 0x109c9660], cl
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov byte [ecx + edx + 0x109c9660], 1
mov ecx, dword [ebp - 0x3c]
add dword [ebp - 0x18], 0x45
inc esi
mov edx, dword [ebp - 0x64]
inc ebx
mov dword [ebp - 0x8c], eax
test eax, eax
jns 0x1003fc62
mov ebx, dword [ebp - 0x24]
add eax, 2
mov dword [ebp - 0x8c], eax
mov byte [esi + ebx + 0x109c965f], 0
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
mov byte [esi + ebx + 0x109c961b], 0
jmp 0x1003fc6a
cmp esi, edx
jne 0x1003fc81
jns 0x1003fc98
push 0x10007bac
call fcn.10054d82
pop ecx
jmp 0x1003fce4
xor eax, eax
mov ebx, eax
test edx, edx
jle 0x1003fce4
mov edi, 0x109c9660
mov esi, eax
test edx, edx
jle 0x1003fcce
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x34], 0xa08b
mov dword [ebp - 0x2c], ebx
inc ecx
jmp 0x1003fd02
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x15c], ecx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x1003fcf5
mov dword [ebp - 0x2c], ebx
jmp 0x1003fd1f
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4b4]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x1003fd0c
mov dword [ebp - 0x2c], ebx
jmp 0x1003fd3d
mov dword [ebp - 0x18], 7
lea ecx, [ebp - 0x734]
mov dword [ebp - 0x24], 0xffff
mov dword [ebp - 0x3c], 0x3e5ec352
mov dword [ebp - 0x10], 0xdc509ca4
mov dword [ebp - 0x34], 0xa3fd
mov dword [ebp - 0x30], edi
push 2
call fcn.1002cb22
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 2
jge 0x100403dd
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x734]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100403c8
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x100403f2
push 0xefd
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x1320f2d6
setle cl
imul ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x10040411
cmp dword [ebp - 0x24], ebx
je 0x10040411
xor eax, eax
inc eax
jmp 0x10040413
mov eax, ebx
xor edx, edx
cmp eax, 0xd6b5
mov eax, dword [ebp - 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setle cl
xor ebx, ebx
cmp ecx, 0xff44
setne bl
xor edx, edx
cmp ebx, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
add eax, 8
cmp eax, 0xfffffff8
setl cl
imul eax, ecx, 0x1718
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
xor edx, edx
inc eax
imul eax, eax, 0x3725
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x18]
jne 0x10040496
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
xor edx, edx
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
lea ecx, [ebp - 0x734]
setge dl
sub edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x734]
mov dword [eax], edx
call fcn.1002d1d0
xor ebx, ebx
cmp dword [ebp - 0x20], ebx
je 0x10041107
mov dword [ebp - 0x10], 0xb110c93b
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x30], 0x1cfd
cmp dword [ebp - 0x30], 0xf31
jge 0x10040676
lea eax, [ebp - 0x60]
push eax
push 0x10007b74
call fcn.1005459b
mov eax, dword [ebp - 0x60]
pop ecx
pop ecx
inc eax
lea ecx, [ebp - 0x400]
push eax
call fcn.1002cb22
push 2
mov dword [ebp - 4], 0x13
mov eax, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x400]
pop edi
cmp eax, edi
jl 0x10040544
lea esi, [ebx + 8]
push esi
push 0x10007b74
call fcn.1005459b
mov eax, dword [ebp - 0x60]
inc edi
pop ecx
add esi, 4
pop ecx
cmp edi, eax
jle 0x1004052c
xor ecx, ecx
inc ecx
inc eax
mov dword [ebp - 0x354], ecx
lea ecx, [ebp - 0x354]
push ecx
push eax
lea ecx, [ebp - 0x7d4]
call fcn.1002cb5e
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x7d4]
test edx, edx
jle 0x1004058a
lea esi, [edi + edx*4]
sub ebx, edi
mov ecx, dword [ebx + esi]
mov eax, dword [esi]
lea esi, [esi - 4]
add dword [edi + ecx*4], eax
dec edx
test edx, edx
jg 0x10040577
mov edx, dword [ebp - 0x60]
movsd xmm0, qword [0x10008348]
lea ecx, [ebp - 0x898]
push ecx
lea eax, [edx + 1]
movsd qword [ebp - 0x898], xmm0
xor ebx, ebx
lea ecx, [ebp - 0x234]
push eax
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
call fcn.1004c276
mov eax, dword [ebp - 0x60]
push 2
pop esi
cmp eax, esi
jl 0x10040621
mov eax, dword [ebp - 0x400]
mov ebx, edi
movsd xmm2, qword [0x10008348]
sub ebx, eax
lea edx, [eax + 8]
mov ecx, dword [edx]
mov eax, dword [edi + ecx*4]
sub eax, dword [ebx + edx]
add edx, 4
dec eax
movd xmm1, eax
mov eax, dword [ebp - 0x234]
cvtdq2pd xmm1, xmm1
movsd xmm0, qword [eax + ecx*8]
mulsd xmm1, qword [0x10008340]
addsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [eax + esi*8], xmm1
inc esi
mov eax, dword [ebp - 0x60]
cmp esi, eax
jle 0x100405e3
xor ebx, ebx
xor ecx, ecx
inc ecx
mov esi, ecx
cmp eax, ecx
jl 0x1004064f
mov edi, dword [ebp - 0x234]
movsd xmm0, qword [edi + esi*8]
push ecx
push ecx
movsd qword [esp], xmm0
push 0x10007fc0
call fcn.100549f9
add esp, 0xc
inc esi
cmp esi, dword [ebp - 0x60]
jle 0x10040630
lea ecx, [ebp - 0x234]
call fcn.1002d1d0
lea ecx, [ebp - 0x7d4]
call fcn.1002d1d0
or edi, 0xffffffff
lea ecx, [ebp - 0x400]
mov dword [ebp - 4], edi
call fcn.1002d1d0
mov dword [ebp - 0x44], 7
xor ecx, ecx
mov dword [ebp - 0x44], 0xe13a6c9c
inc ecx
mov dword [ebp - 0x44], 0xb44cf59
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x34], 0x7000
mov dword [ebp - 0x10], ebx
jmp 0x100406ae
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8c4], 0x874da862
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1004069d
mov dword [ebp - 0x10], 8
cmp dword [ebp - 0x10], 0x13
jge 0x1004072c
mov dword [ebp - 0x44], 0x17633efc
lea ecx, [ebp - 0x804]
mov dword [ebp - 0x44], edi
push 3
call fcn.1002cb22
push 3
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x100406f0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa28], 0xbb0cb8ce
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100406df
mov dword [ebp - 0x14], ebx
jmp 0x1004070d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x804]
mov dword [eax + ecx*4], 0x9ec13488
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100406fa
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x804]
call fcn.1002d1d0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x13
jl 0x100406c0
xor ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x24], 0xf
cmp dword [ebp - 0x24], 0xffffffef
jne 0x10040849
mov edi, 0x57e8
mov dword [ebp - 0x788], edi
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x784], edi
or eax, 0xffffffff
mov dword [ebp - 0x780], edi
mov dword [ebp - 0x77c], edi
mov dword [ebp - 0x18], eax
push 4
call fcn.1002cb22
mov dword [ebp - 0x10], ebx
jmp 0x10040788
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x210]
mov dword [eax + ecx*4], 0xb101aae
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10040775
push 3
mov dword [ebp - 0x18], ebx
pop ecx
jmp 0x1004081f
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x10], ebx
jmp 0x100407ae
cmp dword [ebp - 0x10], 2
jl 0x100407a1
cmp dword [ebp - 0x18], ecx
jle 0x10040799
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0xc], ebx
je 0x1004085c
cmp dword [ebp - 0x24], ebx
je 0x10040876
mov dword [ebp - 0x30], 0xafd77ccc
mov dword [ebp - 0x20], 0x15a13695
mov dword [ebp - 0x10], ebx
jmp 0x100408a1
mov dword [ebp - 0x30], 0xaa53f0d3
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x10040873
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x35c], 0xc0ae9714
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10040890
mov dword [ebp - 0x20], ebx
jmp 0x100408bc
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x35c], 0xd386cce5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100408ab
mov dword [ebp - 0x20], ebx
jmp 0x100408ce
mov dword [ebp - 0x24], 0xe1757117
xor ecx, ecx
mov dword [ebp - 0x18], 0xfffffffb
inc ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0x689278a4
mov dword [ebp - 0x44], 0x9ab1b576
push 6
pop eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x44], 0x9e5e26c5
mov dword [ebp - 0x44], 0xa41183d9
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 0x3d7e6de1
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x44], 0xdb596534
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x44], 0xfffffffc
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x44], 0x48a66be8
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x10], ebx
jmp 0x10041188
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa4c], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1004117b
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xfffffff0
jne 0x10041437
mov dword [ebp - 0x3c], 0xfffffff6
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x638]
push 2
call fcn.1002cb22
xor eax, eax
mov dword [ebp - 4], 0x19
inc eax
mov dword [ebp - 0x44], 0x4b4ea65d
mov dword [ebp - 0x34], 0xfffffffc
lea ecx, [ebp - 0x71c]
push eax
call fcn.1002cb22
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x30], 0x1465
cmp dword [ebp - 0x30], 0x937
jge 0x100412f4
lea eax, [ebp - 0x74]
mov dword [ebp - 0x74], ebx
push eax
push 0x10007b74
call fcn.1005459b
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa0], ebx
push eax
push 0x10007b74
mov dword [ebp - 0xa8], ebx
call fcn.1005459b
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
add esp, 0x10
mov ecx, dword [ebp - 0x48]
mov edi, ebx
mov ebx, dword [ebp - 0x44]
lea esi, [eax + 1]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x74]
dec eax
je 0x100412b5
dec eax
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0xa0]
push eax
push 0x10007b74
call fcn.1005459b
mov eax, dword [ebp - 0xa0]
pop ecx
pop ecx
cmp eax, dword [ebp - 0xa8]
jne 0x10041276
xor ecx, ecx
inc ecx
add esi, ecx
adc edi, 0
jmp 0x100412a8
xor eax, eax
mov ecx, esi
inc eax
add ecx, eax
mov eax, edi
push edi
push esi
adc eax, 0
push eax
push ecx
call fcn.10058d50
push 0
push 2
push edx
push eax
call fcn.1006bd10
add dword [ebp - 0x10], eax
adc ebx, edx
xor eax, eax
xor edi, edi
lea esi, [eax + 1]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x74]
test eax, eax
jne 0x10041247
dec eax
mov ecx, esi
mov dword [ebp - 0x74], eax
xor eax, eax
inc eax
add ecx, eax
mov eax, edi
push edi
push esi
adc eax, 0
push eax
push ecx
call fcn.10058d50
push 0
push 2
push edx
push eax
call fcn.1006bd10
mov ecx, dword [ebp - 0x10]
add ecx, eax
adc ebx, edx
push ebx
push ecx
push 0x10007c20
call fcn.100549f9
add esp, 0xc
xor ebx, ebx
or edi, 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x1004130c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x638]
mov dword [eax + ecx*4], 0x3911e745
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100412f9
xor edx, edx
mov dword [ebp - 0x14], ebx
inc edx
jmp 0x1004132d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x71c]
mov dword [eax + ecx*4], 0xa12e6c4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1004131a
imul ecx, dword [ebp - 0x18], 0x43b36
xor edx, edx
mov eax, dword [ebp - 0x24]
add ecx, 0x8af066b
add eax, ecx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [ebp - 0x18]
jne 0x10041366
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
neg edx
mov ecx, dword [ebp - 0x71c]
sbb edx, edx
add eax, 0x35cb5140
inc edx
add eax, edx
mov edx, dword [ecx]
mov dword [ebp - 0x34], eax
lea eax, [edx + 1]
mov dword [ecx], eax
cmp edx, 0x322662b2
jge 0x100413b3
mov byte [ebp - 0x19], bl
mov dword [ebp - 0x24], 0xd4f2
mov dword [ebp - 0x3c], 0x959310c1
mov dword [ebp - 0x18], 0x2db8e964
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], 0x3ddc
mov dword [ebp - 0x10], 0x14c5
mov dword [ebp - 0x14], ebx
jmp 0x10041476
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe0], 0x145ccb97
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041465
mov dword [ebp - 0x14], ebx
jmp 0x10041492
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x920], 0x40c88307
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10041481
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x100414a8
push ebx
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [ebp - 0x24]
xor edx, edx
dec dword [ebp - 0x10]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0xdc]
add ecx, eax
mov eax, dword [ebp - 0x10]
cmp ecx, eax
sete dl
mov dword [ebp - 0x38], edx
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xdc]
imul ecx, eax
mov eax, dword [ebp - 0xe0]
add eax, ecx
mov ecx, dword [ebp - 0x3c]
cmp eax, 0xfffffff8
mov eax, dword [ebp - 0x18]
setg dl
sub edx, 0x4f0e4f20
neg edx
sbb edx, edx
inc edx
imul ecx, edx
xor edx, edx
sub ecx, 0xbaaa
cmp ecx, eax
setg dl
sub edx, 0xe0c0a103
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, edi
setg al
xor ecx, ecx
sub eax, dword [ebp - 0xdc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, 0x8169b41d
setne cl
cmp dword [ebp - 0x24], ecx
je 0x10041533
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x914]
mov eax, dword [ebp - 0x91c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp - 0x30]
add eax, ecx
je 0x10041592