Function at 0x10033d70
Capabilities:
Accept command line arguments
Allocate thread local storage
Create thread
Get file attributes
Parse pe header
Query environment variable

Disassembly:
mov eax, 0x1008ea07
call fcn.1008cf20
mov eax, 0x17b4
call fcn.100896d0
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x68], ecx
push edi
mov esi, 0x1e29ea41
mov byte [ebp - 0x6d], dl
inc ebx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x20], 0x1dfe0091
lea ecx, [ebp - 0x5ac]
push ebx
call fcn.10016bef
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x10033dd3
push dword [ebp - 0x20]
lea ecx, [ebp - 0x5ac]
call fcn.10016c5c
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10033db8
xor eax, eax
push eax
lea ecx, [ebp - 0x5ac]
call fcn.10016c5c
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov dword [eax], ebx
mov dword [ebp - 0x30], 0
jmp 0x10033fc0
mov dword [ebp - 0x54], 0x76fbfcc0
mov dword [ebp - 0x4c], 0x66d9918c
mov dword [ebp - 0x20], 0
jmp 0x10033e1b
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xe3c], 0xeb5a40a7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10033e0a
mov dword [ebp - 0x20], 0xffffffea
jmp 0x10033fa0
push 3
lea ecx, [ebp - 0x5e8]
call fcn.10016bef
mov byte [ebp - 4], bl
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x1c], 0
jmp 0x10033e5f
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x5e8]
call fcn.10016c5c
mov dword [eax], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10033e48
mov dword [ebp - 0x1c], 0
jmp 0x10033e7f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x66c], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10033e6e
push ebx
lea ecx, [ebp - 0x5e8]
call fcn.10016c5c
xor eax, eax
cmp dword [ebp - 0x54], eax
jg 0x10033eb5
push eax
lea ecx, [ebp - 0x5ac]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x10033eb5
push 0
lea ecx, [ebp - 0x5ac]
call fcn.10016c5c
push ebx
lea ecx, [ebp - 0x5e8]
call fcn.10016c5c
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x4c]
cmp eax, 0x663c10b4
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x54]
sub eax, 0x2d9c
jne 0x10033eea
cmp dword [ebp - 0x4c], eax
je 0x10033eec
mov eax, ebx
xor edx, edx
cmp eax, 0xfc3e
mov eax, dword [ebp - 0x54]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x30]
jl 0x10033f1d
push 0
lea ecx, [ebp - 0x5e8]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x10033f1d
xor eax, eax
mov ecx, eax
jmp 0x10033f21
mov ecx, ebx
xor eax, eax
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10033f8f
mov dword [ebp - 0x24], 0xfffffffd
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], eax
jl 0x10033f84
mov dword [ebp - 0x38], 0x36c8609e
mov dword [ebp - 0x38], 0x7c747caf
mov dword [ebp - 0x54], eax
jmp 0x10033f7a
mov dword [ebp - 0x38], 0x125dbf60
mov dword [ebp - 0x38], 0xf5349dda
mov dword [ebp - 0x38], 0x4c38db0
mov dword [ebp - 0x38], 0x47311ebc
mov dword [ebp - 0x40], 0x71e9572a
inc dword [ebp - 0x40]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], eax
jle 0x10033f51
dec dword [ebp - 0x34]
jns 0x10033f3e
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x4c]
push 0
pop eax
jns 0x10033f2f
lea ecx, [ebp - 0x5e8]
mov byte [ebp - 4], al
call fcn.10016c57
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
jg 0x10033e2c
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x10033fbd
push ebx
push 0x4e4
push eax
call edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xd
jl 0x10033df3
or eax, 0xffffffff
lea ecx, [ebp - 0x5ac]
mov dword [ebp - 4], eax
call fcn.10016c57
mov dword [ebp - 0x30], esi
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], 0xfffffff7
mov dword [ebp - 0x38], 0x7289
mov dword [ebp - 0x2c], 0x9ba87a5
mov dword [ebp - 0x24], 0xde8aff65
mov dword [ebp - 0x20], 0
jmp 0x1003401a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xf0], 0xe0648261
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10034009
mov dword [ebp - 0xf0], 0
or esi, 0xffffffff
cmp dword [ebp - 0xf0], 0xffffffef
jge 0x10034133
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x10], 0x1cb6a7f4
mov dword [ebp - 0x24], 0xa0a9
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x20], 0
jmp 0x10034068
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x518], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10034057
mov eax, dword [ebp - 0xf0]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], 0xfffffff8
cmp dword [ebp - 0x2c], 0
je 0x100340b6
mov eax, dword [ebp - 0x3c]
mov edx, 0x83f7
sub edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0xf0]
cmp edx, eax
setge cl
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x100340b6
mov ecx, ebx
jmp 0x100340b8
xor ecx, ecx
mov eax, dword [ebp - 0xf0]
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0xf0]
cmp ecx, eax
setle dl
xor ecx, ecx
mov dword [ebp - 0x518], edx
mov eax, dword [ebp - 0x3c]
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 5
setl al
xor edx, edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
setl dl
sub edx, 7
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xfffffffb
setge al
xor edx, edx
cmp eax, 0x67d3d8e1
mov eax, dword [ebp - 0x44]
setne dl
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, esi
setl al
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0xf0]
jmp 0x1003402d
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x5c4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0x1dfe0091
push ebx
call fcn.10016bef
mov dword [ebp - 4], 2
mov dword [ebp - 0x20], 0
jmp 0x1003416a
push dword [ebp - 0x20]
call fcn.10016c5c
and dword [eax], 0
inc dword [ebp - 0x20]
lea ecx, [ebp - 0x5c4]
cmp dword [ebp - 0x20], ebx
jl 0x1003415c
push 0
call fcn.10016c5c
mov dword [eax], ebx
mov dword [ebp - 0x30], 0
jmp 0x10034359
mov dword [ebp - 0x54], 0x76fbfcc0
mov dword [ebp - 0x4c], 0x66d9918c
mov dword [ebp - 0x20], 0
jmp 0x100341b2
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xfd4], 0xeb5a40a7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x100341a1
mov dword [ebp - 0x20], 0xffffffea
jmp 0x10034339
push 3
lea ecx, [ebp - 0x6d8]
call fcn.10016bef
mov byte [ebp - 4], 3
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x1c], 0
jmp 0x100341f7
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x6d8]
call fcn.10016c5c
mov dword [eax], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100341e0
mov dword [ebp - 0x1c], 0
jmp 0x10034217
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6ac], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10034206
push ebx
lea ecx, [ebp - 0x6d8]
call fcn.10016c5c
xor eax, eax
cmp dword [ebp - 0x54], eax
jg 0x1003424d
push eax
lea ecx, [ebp - 0x5c4]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x1003424d
push 0
lea ecx, [ebp - 0x5c4]
call fcn.10016c5c
push ebx
lea ecx, [ebp - 0x6d8]
call fcn.10016c5c
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x4c]
cmp eax, 0x663c10b4
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x54]
sub eax, 0x2d9c
jne 0x10034282
cmp dword [ebp - 0x4c], eax
je 0x10034284
mov eax, ebx
xor edx, edx
cmp eax, 0xfc3e
mov eax, dword [ebp - 0x54]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x30]
jl 0x100342b5
push 0
lea ecx, [ebp - 0x6d8]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x100342b5
xor eax, eax
mov ecx, eax
jmp 0x100342b9
mov ecx, ebx
xor eax, eax
mov dword [ebp - 0x6ac], ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10034327
mov dword [ebp - 0x24], 0xfffffffd
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], eax
jl 0x1003431c
mov dword [ebp - 0x38], 0x36c8609e
mov dword [ebp - 0x38], 0x7c747caf
mov dword [ebp - 0x54], eax
jmp 0x10034312
mov dword [ebp - 0x38], 0x125dbf60
mov dword [ebp - 0x38], 0xf5349dda
mov dword [ebp - 0x38], 0x4c38db0
mov dword [ebp - 0x38], 0x47311ebc
mov dword [ebp - 0x40], 0x71e9572a
inc dword [ebp - 0x40]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], eax
jle 0x100342e9
dec dword [ebp - 0x34]
jns 0x100342d6
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x4c]
push 0
pop eax
jns 0x100342c7
lea ecx, [ebp - 0x6d8]
mov byte [ebp - 4], 2
call fcn.10016c57
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
jg 0x100341c3
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x10034356
push ebx
push 0x4e4
push eax
call edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xd
jl 0x1003418a
lea ecx, [ebp - 0x5c4]
mov dword [ebp - 4], esi
call fcn.10016c57
mov dword [ebp - 0x10], 0xa41449c9
lea ecx, [ebp - 0x960]
mov dword [ebp - 0x40], esi
push 3
call fcn.10016bef
push 2
lea ecx, [ebp - 0x668]
mov dword [ebp - 4], 4
call fcn.10016bef
mov byte [ebp - 4], 5
mov dword [ebp - 0x1c], 0
jmp 0x100343c0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x960]
call fcn.10016c5c
mov dword [eax], 0x2d714f98
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100343a9
mov dword [ebp - 0x1c], 0
jmp 0x100343e2
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x668]
call fcn.10016c5c
mov dword [eax], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x100343cf
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x960]
push 2
call fcn.10016c5c
push 0
lea ecx, [ebp - 0x668]
and dword [eax], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x40], eax
call fcn.10016c5c
mov ecx, dword [ebp - 0x10]
push 0
mov esi, dword [eax]
sub esi, ecx
lea ecx, [ebp - 0x668]
call fcn.10016c5c
mov edx, dword [ebp - 0x40]
imul edx, dword [ebp - 0x10]
push 0xfffffffffffffffa
pop ebx
push 0
imul edx, esi
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, ebx
setge cl
xor ebx, ebx
cmp ecx, 0xdf60
lea ecx, [ebp - 0x668]
setg bl
imul ebx, dword [eax]
neg ebx
sbb ebx, ebx
inc ebx
call fcn.10016c5c
lea ecx, [ebp - 0x668]
mov dword [eax], ebx
call fcn.10016c57
or eax, 0xffffffff
lea ecx, [ebp - 0x960]
mov dword [ebp - 4], eax
call fcn.10016c57
xor esi, esi
mov dword [ebp - 0x28], 0x1e29ea41
inc esi
mov dword [ebp - 0x58], 0x1dfe0091
push esi
lea ecx, [ebp - 0x6a8]
call fcn.10016bef
mov dword [ebp - 4], 6
xor eax, eax
mov dword [ebp - 0x54], 0xa9bdba76
push 3
mov dword [ebp - 0x20], eax
pop ebx
cmp dword [ebp - 0x20], ebx
jge 0x100344ca
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1410], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x100344b2
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
je 0x100344ee
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], ebx
jge 0x10034500
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0x1410], esi
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], ebx
jl 0x100344da
jmp 0x100344fe
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034500
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x10034519
push dword [ebp - 0x20]
lea ecx, [ebp - 0x6a8]
call fcn.10016c5c
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10034505
or eax, 0xffffffff
lea ecx, [ebp - 0x480]
mov dword [ebp - 0x18], eax
push ebx
call fcn.10016bef
mov byte [ebp - 4], 7
mov dword [ebp - 0x3c], 0xbb94d0f
mov dword [ebp - 0x24], 0x132d7af2
mov dword [ebp - 0x10], 0x7904
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x20], 0
jmp 0x1003456b
push dword [ebp - 0x20]
lea ecx, [ebp - 0x480]
call fcn.10016c5c
or ecx, 0xffffffff
mov dword [eax], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10034555
mov eax, dword [ebp - 0x18]
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], eax
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x10034615
push 3
lea ecx, [ebp - 0x96c]
call fcn.10016bef
xor eax, eax
mov byte [ebp - 4], 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x100345c2
push dword [ebp - 0x20]
lea ecx, [ebp - 0x96c]
call fcn.10016c5c
mov dword [eax], 0xfffffff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x100345a3
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x100345ea
push dword [ebp - 0x18]
lea ecx, [ebp - 0x96c]
call fcn.10016c5c
mov dword [eax], 0x7dc4b4e1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100345cb
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034604
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
lea ecx, [ebp - 0x96c]
mov byte [ebp - 4], 7
call fcn.10016c57
jmp 0x10034639
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x10034639
push 0x90
push eax
push eax
push eax
push eax
push 0x94d
push 0x258e
call ebx
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
neg eax
jne 0x10034653
push 0
lea ecx, [ebp - 0x480]
call fcn.10016c5c
push esi
lea ecx, [ebp - 0x480]
call fcn.10016c5c
push 0
lea ecx, [ebp - 0x480]
mov esi, eax
call fcn.10016c5c
xor edx, edx
push 0
mov ecx, dword [eax]
cmp ecx, dword [esi]
setne dl
mov dword [ebp - 0x3c], edx
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x480]
call fcn.10016c5c
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x18]
imul ecx, dword [eax]
test ecx, ecx
jne 0x100346b5
xor eax, eax
cmp dword [ebp - 0x3c], eax
je 0x100346b8
xor eax, eax
inc eax
mov edx, dword [ebp - 0x10]
xor ecx, ecx
add edx, eax
mov eax, dword [ebp - 0x10]
cmp edx, eax
setle cl
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 6
call fcn.10016c57
push 0
lea ecx, [ebp - 0x6a8]
call fcn.10016c5c
xor ecx, ecx
mov esi, 0xa7b7e80d
inc ecx
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xd
jl 0x10034758
push 0xfffffffffffffff7
pop esi
or eax, 0xffffffff
lea ecx, [ebp - 0x6a8]
mov dword [ebp - 4], eax
call fcn.10016c57
xor eax, eax
mov dword [ebp - 0x54], 0xa9bdba76
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x1003473a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1428], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10034721
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
je 0x10034d38
xor edi, edi
mov dword [ebp - 0x54], eax
inc edi
jmp 0x10034d30
xor eax, eax
mov esi, 0xa7b7e80d
mov dword [ebp - 0x2c], 0xfffffff6
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x1003477d
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x14d0], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10034768
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x100347f3
mov dword [ebp - 0x34], 0xe1265ab3
mov dword [ebp - 0x34], eax
jmp 0x100347ce
mov dword [ebp - 0x20], 0xae77ab39
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jg 0x100347cb
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x100347b0
call ebx
push eax
call dword [sym.imp.USER32.dll_IsWindow]
mov eax, dword [ebp - 0x34]
cmp dword [ebp + eax*4 - 0x14d0], 0
jne 0x100347c9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
push 0
pop eax
jle 0x1003479e
xor eax, eax
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 2
jle 0x1003478e
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x100347f0
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
xor eax, eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xd
je 0x10034782
mov dword [ebp - 0x54], 0x76fbfcc0
lea ecx, [ebp - 0xc6c]
mov dword [ebp - 0x4c], 0x66d9918c
push 4
call fcn.10016bef
mov byte [ebp - 4], 9
or eax, 0xffffffff
mov dword [ebp - 0x34], 0x29000d4e
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
jmp 0x10034845
push dword [ebp - 0x20]
lea ecx, [ebp - 0xc6c]
call fcn.10016c5c
mov dword [eax], 0x3b910207
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x1003482e
mov dword [ebp - 0x34], 0
jmp 0x10034869
push dword [ebp - 0x34]
call fcn.10016c5c
mov ecx, 0xe7e55059
mov dword [eax], ecx
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 3
lea ecx, [ebp - 0xc6c]
jle 0x10034854
mov byte [ebp - 4], 6
call fcn.10016c57
mov dword [ebp - 0x30], 0x6ec7516a
lea ecx, [ebp - 0x45c]
push 4
call fcn.10016bef
mov byte [ebp - 4], 0xa
xor eax, eax
inc eax
mov dword [ebp - 0x34], eax
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x24], ecx
or ecx, 0xffffffff
mov dword [ebp - 0x40], 0x31966c47
mov dword [ebp - 0x44], 0xfff7
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
jmp 0x100348d8
push dword [ebp - 0x20]
lea ecx, [ebp - 0x45c]
call fcn.10016c5c
xor ecx, ecx
inc ecx
mov dword [eax], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x100348c2
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, esi
setge dl
sub eax, edx
je 0x10034905
xor eax, eax
cmp dword [ebp - 0x30], eax
je 0x10034907
xor ecx, ecx
lea esi, [ecx + 1]
jmp 0x10034909
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x45c]
call fcn.10016c5c
mov ecx, dword [ebp - 0x30]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x45c]
push 3
setle dl
mov dword [eax], edx
call fcn.10016c5c
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setle dl
xor ecx, ecx
cmp edx, eax
push 3
setg cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
xor esi, esi
neg eax
inc esi
cmp esi, eax
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x45c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
call fcn.10016c5c
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x30]
jge 0x100349a0
cmp dword [ebp - 0x3c], 0
je 0x100349a0
mov ecx, esi
jmp 0x100349a2
xor ecx, ecx
push 0xfffffffffffffff7
pop esi
mov eax, esi
sub eax, ecx
lea ecx, [ebp - 0x45c]
mov dword [ebp - 0x24], eax
xor eax, eax
inc eax
push eax
call fcn.10016c5c
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 6
mov dword [eax], ecx
lea ecx, [ebp - 0x45c]
call fcn.10016c57
xor ecx, ecx
mov dword [ebp - 0x20], 0
inc ecx
jmp 0x100349ec
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xe4c], 0xeb5a40a7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100349db
mov dword [ebp - 0x58], 0xffffffea
cmp dword [ebp - 0x58], 0x1a
jle 0x10034cfb
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], 0x7289
mov dword [ebp - 0x2c], 0x9ba87a5
mov dword [ebp - 0x24], 0xde8aff65
mov dword [ebp - 0x20], 0
jmp 0x10034a3a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xf8], 0xe0648261
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10034a29
mov dword [ebp - 0xf8], 0
cmp dword [ebp - 0xf8], 0xffffffef
jge 0x10034b61
jmp 0x10034a5c
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], 0x1cb6a7f4
mov dword [ebp - 0x24], 0xa0a9
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x20], 0
jmp 0x10034a8a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x6bc], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x10034a79
mov eax, dword [ebp - 0xf8]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], 0xfffffff8
cmp dword [ebp - 0x2c], 0
je 0x10034adb
mov eax, dword [ebp - 0x3c]
mov edx, 0x83f7
sub edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0xf8]
cmp edx, eax
setge cl
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x10034adb
xor eax, eax
lea ecx, [eax + 1]
jmp 0x10034add
xor ecx, ecx
mov eax, dword [ebp - 0xf8]
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0xf8]
cmp ecx, eax
setle dl
xor ecx, ecx
mov dword [ebp - 0x6bc], edx
mov eax, dword [ebp - 0x3c]
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 5
setl al
xor edx, edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
setl dl
sub edx, 7
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xfffffffb
setge al
xor edx, edx
cmp eax, 0x67d3d8e1
mov eax, dword [ebp - 0x44]
setne dl
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xffffffff
setl al
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0xf8]
cmp dword [ebp - 0xf8], 0xffffffef
jl 0x10034a59
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x5dc]
mov dword [ebp - 0x24], eax
push 3
call fcn.10016bef
xor ecx, ecx
mov byte [ebp - 4], 0xb
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 3
jge 0x10034bab
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x5dc]
call fcn.10016c5c
mov dword [eax], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10034b8b
xor ecx, ecx
inc ecx
mov dword [ebp - 0x1c], 0
jmp 0x10034bc5
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x568], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10034bb4
push ecx
lea ecx, [ebp - 0x5dc]
call fcn.10016c5c
xor eax, eax
cmp dword [ebp - 0x54], eax
jg 0x10034bfb
push eax
lea ecx, [ebp - 0x6a8]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x10034bfb
push 0
lea ecx, [ebp - 0x6a8]
call fcn.10016c5c
xor eax, eax
lea ecx, [ebp - 0x5dc]
inc eax
push eax
call fcn.10016c5c
mov eax, dword [ebp - 0x28]
xor edx, edx
inc edx
xor ecx, ecx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
cmp eax, 0x663c10b4
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x54]
sub eax, 0x2d9c
jne 0x10034c36
cmp dword [ebp - 0x4c], eax
je 0x10034c38
mov eax, edx
xor edx, edx
cmp eax, 0xfc3e
mov eax, dword [ebp - 0x54]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x28]
jl 0x10034c69
push 0
lea ecx, [ebp - 0x5dc]
call fcn.10016c5c
cmp dword [eax], 0
jne 0x10034c69
xor eax, eax
mov ecx, eax
jmp 0x10034c6e
xor eax, eax
lea ecx, [eax + 1]
mov dword [ebp - 0x568], ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], eax
jl 0x10034cdc
mov dword [ebp - 0x24], 0xfffffffd
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], eax
jl 0x10034cd1
mov dword [ebp - 0x38], 0x36c8609e
mov dword [ebp - 0x38], 0x7c747caf
mov dword [ebp - 0x54], eax
jmp 0x10034cc7
mov dword [ebp - 0x38], 0x125dbf60
mov dword [ebp - 0x38], 0xf5349dda
mov dword [ebp - 0x38], 0x4c38db0
mov dword [ebp - 0x38], 0x47311ebc
mov dword [ebp - 0x40], 0x71e9572a
inc dword [ebp - 0x40]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], eax
jle 0x10034c9e
dec dword [ebp - 0x34]
jns 0x10034c8b
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x4c]
push 0
pop eax
jns 0x10034c7c
lea ecx, [ebp - 0x5dc]
mov byte [ebp - 4], 6
call fcn.10016c57
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0x1a
push 1
pop ecx
jg 0x10034a02
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x10034d0e
push ecx
push 0x4e4
push eax
call edi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xd
push 1
pop ecx
jl 0x10034751
jmp 0x100346fe
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0x1428], edi
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 3
jl 0x10034d23
jmp 0x10034d4b
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034d48
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
xor edi, edi
inc edi
or eax, 0xffffffff
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x18], eax
push 3
call fcn.10016bef
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x3c], 0xbb94d0f
mov dword [ebp - 0x24], 0x132d7af2
mov dword [ebp - 0x10], 0x7904
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], 0
jmp 0x10034d9c
push dword [ebp - 0x20]
lea ecx, [ebp - 0x474]
call fcn.10016c5c
or ecx, 0xffffffff
mov dword [eax], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10034d86
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x10034e3d
push 3
lea ecx, [ebp - 0x984]
call fcn.10016bef
xor eax, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x10034dea
push dword [ebp - 0x20]
lea ecx, [ebp - 0x984]
call fcn.10016c5c
mov dword [eax], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10034dcf
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x10034e12
push dword [ebp - 0x18]
lea ecx, [ebp - 0x984]
call fcn.10016c5c
mov dword [eax], 0x7dc4b4e1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10034df3
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034e2c
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
lea ecx, [ebp - 0x984]
mov byte [ebp - 4], 0xc
call fcn.10016c57
jmp 0x10034e61
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x10034e61
push 0x90
push eax
push eax
push eax
push eax
push 0x94d
push 0x258e
call ebx
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
neg eax
jne 0x10034e7b
push 0
lea ecx, [ebp - 0x474]
call fcn.10016c5c
push edi
lea ecx, [ebp - 0x474]
call fcn.10016c5c
push 0
lea ecx, [ebp - 0x474]
mov esi, eax
call fcn.10016c5c
xor edx, edx
push 0
mov ecx, dword [eax]
cmp ecx, dword [esi]
setne dl
mov dword [ebp - 0x3c], edx
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x474]
call fcn.10016c5c
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x18]
imul ecx, dword [eax]
test ecx, ecx
jne 0x10034edd
xor eax, eax
cmp dword [ebp - 0x3c], eax
je 0x10034edf
mov eax, edi
mov edx, dword [ebp - 0x10]
xor ecx, ecx
add edx, eax
mov eax, dword [ebp - 0x10]
cmp edx, eax
setle cl
or eax, 0xffffffff
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x474]
mov dword [ebp - 4], eax
call fcn.10016c57
push 0xfffffffffffffff6
pop eax
mov dword [ebp - 0x34], 0x1e29ea41
mov dword [ebp - 0x2c], eax
xor eax, eax
push 3
mov dword [ebp - 0x20], eax
pop esi
cmp dword [ebp - 0x20], esi
jge 0x10034f30
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1374], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10034f1c
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x10034fa6
mov dword [ebp - 0x34], 0xe1265ab3
mov dword [ebp - 0x34], eax
jmp 0x10034f81
mov dword [ebp - 0x20], 0xae77ab39
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jg 0x10034f7e
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034f63
call ebx
push eax
call dword [sym.imp.USER32.dll_IsWindow]
mov eax, dword [ebp - 0x34]
cmp dword [ebp + eax*4 - 0x1374], 0
jne 0x10034f7c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
push 0
pop eax
jle 0x10034f51
xor eax, eax
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 2
jle 0x10034f41
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x10034fa3
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
xor eax, eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xd
je 0x10034f35
mov dword [ebp - 0x10], 0x1dfe0091
lea ecx, [ebp - 0xb7c]
push 4
call fcn.10016bef
mov dword [ebp - 4], 0xe
or eax, 0xffffffff
mov dword [ebp - 0x34], 0x29000d4e
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
jmp 0x10034ff4
push dword [ebp - 0x20]
lea ecx, [ebp - 0xb7c]
call fcn.10016c5c
mov dword [eax], 0x3b910207
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10034fdd
mov dword [ebp - 0x34], 0
jmp 0x10035018
push dword [ebp - 0x34]
call fcn.10016c5c
mov ecx, 0xe7e55059
mov dword [eax], ecx
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x34]
lea ecx, [ebp - 0xb7c]
cmp dword [ebp - 0x34], esi
jle 0x10035003
or esi, 0xffffffff
mov dword [ebp - 4], esi
call fcn.10016c57
push edi
lea ecx, [ebp - 0x60c]
call fcn.10016bef
mov dword [ebp - 4], 0xf
lea ecx, [ebp - 0x360]
mov dword [ebp - 0x30], 0x6ec7516a
push 4
call fcn.10016bef
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x34], edi
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], 0x31966c47
mov dword [ebp - 0x44], 0xfff7
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0
jmp 0x10035092
push dword [ebp - 0x20]
lea ecx, [ebp - 0x360]
call fcn.10016c5c
mov dword [eax], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x1003507f
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, 0xa7b7e80d
setge dl
sub eax, edx
je 0x100350bf
xor eax, eax
cmp dword [ebp - 0x30], eax
je 0x100350c1
mov esi, edi
jmp 0x100350c3
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x360]
call fcn.10016c5c
mov ecx, dword [ebp - 0x30]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x360]
push 3
setle dl
mov dword [eax], edx
call fcn.10016c5c
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setle dl
xor ecx, ecx
cmp edx, eax
push 3
setg cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
neg eax
cmp edi, eax
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x360]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
call fcn.10016c5c
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x30]
jge 0x10035157
cmp dword [ebp - 0x3c], 0
je 0x10035157
mov ecx, edi
jmp 0x10035159
xor ecx, ecx
push 0xfffffffffffffff7
pop esi
mov eax, esi
sub eax, ecx
lea ecx, [ebp - 0x360]
mov dword [ebp - 0x24], eax
push edi
call fcn.10016c5c
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0xf
mov dword [eax], ecx
lea ecx, [ebp - 0x360]
call fcn.10016c57
mov dword [ebp - 0x20], 0
jmp 0x100351a0
push dword [ebp - 0x20]
lea ecx, [ebp - 0x60c]
call fcn.10016c5c
and dword [eax], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x1003518c
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], 0x7289
mov dword [ebp - 0x2c], 0x9ba87a5
mov dword [ebp - 0x24], 0xde8aff65
mov dword [ebp - 0x20], 0
jmp 0x100351dd