Function at 0x100160a6
Capabilities:
Allocate thread local storage
Get disk information
Get graphical window text
Get system information on windows

Disassembly:
mov eax, 0x1006ad4d
call fcn.1006a018
sub esp, 0x99c
push ebx
push esi
mov dword [ebp - 0x68], ecx
xor ebx, ebx
xor ecx, ecx
mov byte [ebp - 0x6d], dl
mov edx, 0x88a137b1
inc ecx
mov dword [ebp - 0x18], edx
mov esi, 0xccb03629
mov dword [ebp - 0x10], ecx
push edi
mov dword [ebp - 0x2c], 0x3187110e
mov dword [ebp - 0x44], 6
push 3
mov dword [ebp - 0x20], ebx
pop eax
cmp dword [ebp - 0x20], eax
jge 0x10016104
push eax
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1c8], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100160ef
xor ecx, ecx
inc ecx
neg dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c0]
cmp dword [ebp - 0x1c0], ebx
je 0x1001611e
mov eax, dword [ebp - 0x1c0]
cmp dword [ebp - 0x18], ecx
ja 0x10016126
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c4]
push 0xffffffffffffffef
pop edi
mov dword [ebp - 0x1c0], eax
push 0xffffffffffffffff
mov dword [ebp - 0x10], ebx
pop eax
jmp 0x1001615c
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0xfffffffb
inc dword [ebp - 0x48]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
je 0x1001614c
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x2c], 0x3187110e
push 3
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x20], ebx
pop edx
jmp 0x1001618a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1a4], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1001617d
neg dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x19c]
cmp dword [ebp - 0x19c], ebx
je 0x100161a9
mov eax, dword [ebp - 0x19c]
cmp dword [ebp - 0x18], ecx
ja 0x100161b1
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], edi
jne 0x100161ec
or eax, 0xffffffff
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0xfffffffb
inc dword [ebp - 0x48]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
je 0x100161d7
push 4
lea ecx, [ebp - 0x2b4]
call fcn.1000b98b
mov dword [ebp - 0x1c], 0x29000d4e
mov dword [ebp - 0x10], ebx
jmp 0x10016218
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2b4]
mov dword [eax + ecx*4], 0x207
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10016205
push 3
mov dword [ebp - 0x1c], ebx
pop ecx
jmp 0x1001631c
mov dword [ebp - 0x20], ebx
jmp 0x1001623f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x79c], 0xed69376
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1001622e
mov dword [ebp - 0x20], ebx
jmp 0x10016256
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x200], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10016249
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2b4]
cmp dword [eax + ecx*4], 2
setl dl
xor ecx, ecx
cmp edx, 0x23cc
setge cl
xor eax, eax
sub ecx, 0x47027eb9
cmp ecx, 0x71639956
setg al
xor edx, edx
mov dword [ebp - 0x79c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2b4]
add eax, 0xfffb
cmp dword [ecx + esi*4], eax
mov eax, dword [ebp - 0x2b4]
sete dl
sub edx, dword [eax + edi*4]
je 0x100162db
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], bl
je 0x100162ef
push 0x17b6
call dword [sym.imp.USER32.dll_IsWindow]
jmp 0x100162ef
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x44], 0x9ff7503a
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
push 3
pop ecx
mov dword [ebp - 0x200], ecx
cmp dword [ebp - 0x200], ebx
jl 0x10016319
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], bl
je 0x1001630e
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
dec dword [ebp - 0x200]
jns 0x10016300
push 3
pop ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jle 0x10016229
lea ecx, [ebp - 0x2b4]
call fcn.1000ba0d
mov dword [ebp - 0x3c], 0x88a137b1
mov eax, 0xd33a4a9b
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
push 3
mov dword [ebp - 0x24], 0x2afe01bd
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x10016374
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x334], 0xfffffff9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10016363
xor esi, esi
mov dword [ebp - 0x24], ecx
inc esi
or edi, 0xffffffff
cmp dword [ebp - 0x24], ebx
jl 0x100164b6
mov dword [ebp - 0x38], 0x29ed7d41
xor edx, edx
mov dword [ebp - 0x18], 0x8185f187
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
test eax, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x110]
cmp edx, eax
sete cl
xor edx, edx
cmp ecx, 9
setl dl
xor ecx, ecx
add edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x110]
cmp eax, esi
mov eax, dword [ebp - 0x24]
setge dl
mov ecx, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x24]
add eax, edx
imul ecx, eax
neg ecx
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
cmp eax, edi
setne cl
mov dword [ebp - 0x334], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
test eax, eax
setne cl
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x38]
jne 0x1001646a
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x110]
mov eax, dword [ebp - 0x38]
mov ecx, esi
dec eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x334]
mov eax, dword [ebp - 0x32c]
sub ecx, eax
mov edx, dword [ebp - 0x334]
xor eax, eax
cmp ecx, 0xfffffff6
setl al
sub edx, dword [ebp - 0x38]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, eax
mov eax, dword [ebp - 0x24]
cmp edx, eax
setge cl
mov dword [ebp - 0x334], ecx
dec dword [ebp - 0x24]
jns 0x1001638b
push 3
pop ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], 0xa48bbca6
mov dword [ebp - 0x54], 0xdc4b4e12
push 8
pop eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], 0xfff9
mov dword [ebp - 0x10], ebx
jmp 0x100164ec
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8e8], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x100164df
mov dword [ebp - 0x10], ebx
jmp 0x10016503
mov dword [ebp - 0x48], 0xfff8
inc dword [ebp - 0x48]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xf
jl 0x100164f6
dec dword [ebp - 0x50]
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x44], 0x3187110e
mov dword [ebp - 0x2c], 6
mov dword [ebp - 0x24], 0xc184c506
push 2
call fcn.1000b98b
push 2
mov dword [ebp - 0x54], 0xfffffffa
mov dword [ebp - 0x20], ebx
pop edx
jmp 0x1001654e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xac], 0xb57f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1001653d
mov dword [ebp - 0x20], ebx
jmp 0x1001656b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2d8]
mov dword [eax + ecx*4], 0x7d1dc6b7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x10016558
xor ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], ebx
jl 0x10016654
mov edi, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xac], ebx
jne 0x1001659f
mov eax, dword [ebp - 0x24]
mov esi, ebx
cmp dword [ebp + eax*4 - 0xac], ebx
je 0x100165a1
mov esi, ecx
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x2d8]
cmp dword [eax], esi
setge dl
sub edx, ecx
jne 0x100165c8
cmp dword [ebp - 0xa8], ebx
jne 0x100165c8
mov eax, ebx
jmp 0x100165cb
xor eax, eax
inc eax
neg eax
jne 0x100165db
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xac], ebx
je 0x100165e5
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x24]
xor edx, edx
push 1
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x2d8]
mov esi, dword [eax]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0xac]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
inc ecx
cmp ecx, esi
pop ecx
setge dl
xor eax, eax
sub edx, esi
cmp edx, dword [edi + 4]
setl al
mov dword [edi + 4], eax
dec dword [ebp - 0x24]
jns 0x10016585
lea ecx, [ebp - 0x2d8]
call fcn.1000ba0d
push 3
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x10016678
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1bc], 0xccb03629
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10016667
push ecx
lea ecx, [ebp - 0x46c]
call fcn.1000b98b
mov dword [ebp - 4], ebx
or esi, 0xffffffff
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x48], 0x2f3ccd24
push 3
mov dword [ebp - 0x54], 0x3f5e3d1a
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x100166bb
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x46c]
mov dword [eax + ecx*4], 0x8261f9c2
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x100166a8
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x100166e1
push 0x23e9
push ebx
push 0xa4d
push ebx
push 0xa69
push ebx
call dword [sym.imp.KERNEL32.dll_CompareStringW]
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], ebx
jl 0x100167c0
mov dword [ebp - 0x10], ebx
lea ecx, [ebp - 0x490]
push 4
call fcn.1000b98b
mov dword [ebp - 0x10], ebx
jmp 0x10016719
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x490]
mov dword [eax + ecx*4], 0xd5493e6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10016706
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x10016742
push 0x1232
push 0xaae
push 0xc6
push 0x623
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], ebx
jl 0x100167a9
mov ebx, dword [ebp - 0x490]
mov dword [ebp - 0x2c], 0x30c4e2bf
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp eax, 0xfd43
setg cl
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x46c]
mov edi, dword [ebx + 8]
sub edi, dword [ecx + eax*4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx + edx*4]
sub edx, dword [ecx + esi*4]
xor ecx, ecx
imul eax, edi
cmp edx, eax
setne cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x10]
jns 0x10016754
xor ebx, ebx
lea ecx, [ebp - 0x490]
call fcn.1000ba0d
dec dword [ebp - 0x20]
jns 0x100166f1
or esi, 0xffffffff
lea ecx, [ebp - 0x46c]
mov dword [ebp - 4], esi
call fcn.1000ba0d
neg dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1b4]
cmp dword [ebp - 0x1b4], ebx
je 0x100167e8
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x3c], ecx
ja 0x100167f3
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1c], ebx
jmp 0x1001688b
mov dword [ebp - 0x10], 0xfff7
mov dword [ebp - 0x20], 0x1d1b984
cmp dword [ebp - 0x10], ebx
mov byte [ebp - 0x25], bl
je 0x1001683f
cmp byte [ebp - 0x25], 0
je 0x1001684f
push ebx
push ebx
push 0x20e9
push ebx
call dword [sym.imp.USER32.dll_AppendMenuA]
jmp 0x1001684c
cmp byte [ebp - 0x25], 0
je 0x1001684f
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x10], ebx
jne 0x1001686f
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x10]
jl 0x1001686f
cmp dword [ebp - 0x20], ebx
jne 0x1001686f
mov ecx, ebx
mov eax, dword [ebp - 0x20]
imul eax, ecx
push 1
pop ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x2c], 0xfffffffb
inc dword [ebp - 0x48]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffef
je 0x10016813
push 4
lea ecx, [ebp - 0x314]
call fcn.1000b98b
mov dword [ebp - 0x1c], 0x29000d4e
mov dword [ebp - 0x10], ebx
jmp 0x100168bd
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x314]
mov dword [eax + ecx*4], 0x207
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100168aa
push 3
mov dword [ebp - 0x1c], ebx
pop ecx
jmp 0x100169c3
mov dword [ebp - 0x20], ebx
jmp 0x100168e4
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x7b4], 0xed69376
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100168d3
mov dword [ebp - 0x20], ebx
jmp 0x100168fb
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1f8], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100168ee
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x314]
cmp dword [eax + ecx*4], 2
setl dl
xor ecx, ecx
cmp edx, 0x23cc
setge cl
xor eax, eax
sub ecx, 0x47027eb9
cmp ecx, 0x71639956
setg al
xor edx, edx
mov dword [ebp - 0x7b4], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x314]
add eax, 0xfffb
cmp dword [ecx + esi*4], eax
mov eax, dword [ebp - 0x314]
sete dl
sub edx, dword [eax + edi*4]
je 0x10016981
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x10016995
push 0x17b6
call dword [sym.imp.USER32.dll_IsWindow]
jmp 0x10016995
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x44], 0x9ff7503a
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
push 3
pop ecx
mov dword [ebp - 0x1f8], ecx
cmp dword [ebp - 0x1f8], ebx
jl 0x100169c0
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x100169b5
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
dec dword [ebp - 0x1f8]
jns 0x100169a6
push 3
pop ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jle 0x100168ce
lea ecx, [ebp - 0x314]
call fcn.1000ba0d
mov dword [ebp - 0x10], 0xd4e06482
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 0xffffffef
jg 0x10016a46
lea esi, [ebp - 0x6a4]
lea edi, [ebp - 0x694]
movdqa xmm0, xmmword [0x10007e50]
push ecx
push edi
push esi
lea ecx, [ebp - 0x37c]
movdqu xmmword [ebp - 0x6a4], xmm0
call fcn.1000b9e7
mov eax, dword [ebp - 0x37c]
lea ecx, [ebp - 0x37c]
cmp dword [eax], ebx
jne 0x10016a41
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x37c]
mov dword [eax + 4], 0xfffffff6
call fcn.1000ba0d
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffef
jle 0x100169f3
jmp 0x10016a46
call fcn.1000ba0d
mov esi, dword [sym.imp.GDI32.dll_StretchBlt]
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x10016a8e
push 0x1560
push 0x222e
push 0x1724
push 0x806
push 0x1c11
push 0x24d5
push 0xdb5
push 0x134a
push 0x1682
push 0x5b1
push 0x23b6
call esi
mov dword [ebp - 0x10], 0xd4e06482
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 0xffffffef
jg 0x10016b03
lea edi, [ebp - 0x618]
lea eax, [ebp - 0x608]
movdqa xmm0, xmmword [0x10007e50]
push ecx
push eax
push edi
lea ecx, [ebp - 0x3b8]
movdqu xmmword [ebp - 0x618], xmm0
call fcn.1000b9e7
mov eax, dword [ebp - 0x3b8]
lea ecx, [ebp - 0x3b8]
cmp dword [eax], ebx
jne 0x10016afe
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3b8]
mov dword [eax + 4], 0xfffffff6
call fcn.1000ba0d
dec dword [ebp - 0x10]
lea eax, [ebp - 0x608]
cmp dword [ebp - 0x10], 0xffffffef
jle 0x10016aaa
jmp 0x10016b03
call fcn.1000ba0d
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], 0
je 0x10016b45
push 0x1560
push 0x222e
push 0x1724
push 0x806
push 0x1c11
push 0x24d5
push 0xdb5
push 0x134a
push 0x1682
push 0x5b1
push 0x23b6
call esi
mov dword [ebp - 0x38], 0xb8c3
lea ecx, [ebp - 0x55c]
mov dword [ebp - 0x3c], 0x152c58fb
or eax, 0xffffffff
mov dword [ebp - 0x2c], 0x7c8748af
push 3
pop esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x1c], 0xe6d058a8
mov dword [ebp - 0x34], eax
xor eax, eax
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], eax
push eax
call fcn.1000b98b
xor edx, edx
inc edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x40], 4
mov dword [ebp - 0x18], 0x2e40c18a
mov dword [ebp - 0x10], 0xfffc
mov dword [ebp - 0x24], 0xf1a0197c
mov dword [ebp - 0x50], 0xb566e66b
mov dword [ebp - 0x10], ebx
jmp 0x10016bc6
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0xca9f8d1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x10016bb3
cmp dword [ebp - 0x34], ebx
je 0x10016bec
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x20], ebx
jne 0x10016be9
cmp dword [ebp - 0x38], ebx
je 0x10016bec
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x3c], eax
jge 0x10016c13
mov ecx, ebx
cmp dword [ebp - 0x40], ebx
je 0x10016c15
mov ecx, edx
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
setge cl
sub edx, ecx
inc dword [ebp - 0x18]
cmp edx, eax
je 0x10016c3f
xor edx, edx
inc edx
mov eax, edx
jmp 0x10016c44
xor edx, edx
mov eax, ebx
inc edx
xor ecx, ecx
cmp eax, 0x3dce
mov eax, dword [ebp - 0x55c]
setge cl
mov dword [eax], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ebx
jmp 0x10016cfc
mov dword [ebp - 0x3c], 0xdcdedc29
lea ecx, [ebp - 0x49c]
push edx
call fcn.1000b98b
xor edx, edx
inc edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x20], ebx
jmp 0x10016c8e
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x49c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x10016c7f
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x49c]
mov dword [eax], ecx
test ecx, ecx
je 0x10016ca5
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x4c]
neg edx
sbb edx, edx
inc edx
cmp edx, esi
jb 0x10016cdb
cmp dword [ebp - 0x24], ebx
jne 0x10016cdb
mov ecx, ebx
jmp 0x10016ce0
xor eax, eax
lea ecx, [eax + 1]
xor eax, eax
cmp ecx, 0xfffffff7
lea ecx, [ebp - 0x49c]
sete al
mov dword [ebp - 0x44], eax
call fcn.1000ba0d
inc dword [ebp - 0x10]
push 1
pop edx
cmp dword [ebp - 0x10], 0x32
je 0x10016c61
or esi, 0xffffffff
lea ecx, [ebp - 0x55c]
mov dword [ebp - 4], esi
call fcn.1000ba0d
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x20], ebx
jmp 0x10016d33
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x124], 0x3198a8f9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10016d22
push 3
mov dword [ebp - 0x20], ebx
pop ecx
jmp 0x10016d4e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x90c], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x10016d41
mov dword [ebp - 0x20], ebx
jmp 0x10016dd0
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x64], 0xd99ea7eb
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x124], ebx
jne 0x10016d78
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x124]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x124]
imul eax, dword [ebp - 0x20], 9
add ecx, eax
imul ecx, ecx, 0xaced
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x124], ecx
jle 0x10016da7
mov esi, ebx
cmp dword [ebp - 0x124], ebx
jne 0x10016da9
mov esi, edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x124]
mov eax, dword [ebp - 0x2c]
cmp esi, eax
mov eax, dword [ebp - 0x44]
setl cl
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x64], ecx
inc dword [ebp - 0x20]
xor edx, edx
inc edx
cmp dword [ebp - 0x20], edx
jle 0x10016d58
mov dword [ebp - 0x10], 0x693e
lea ecx, [ebp - 0x2e8]
mov dword [ebp - 0x38], 0x3205f5a2
mov dword [ebp - 0x34], 0x413e458c
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x2c], 0xb275cf8
push 4
call fcn.1000b98b
push 2
pop esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x48], 0x6e19
mov dword [ebp - 0x4c], 0xfffffff9
mov dword [ebp - 0x50], 0x7d86c3ce
mov dword [ebp - 0x1c], ebx
jmp 0x10016e37
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2e8]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10016e28
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jne 0x10016ed1
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2e8]
xor eax, eax
cmp dword [edx + 8], 5
sete al
xor ecx, ecx
inc ecx
cmp ecx, eax
sbb eax, eax
neg eax
sub eax, 0x25769539
je 0x10016e76
cmp dword [ebp - 0x10], ebx
mov edx, dword [ebp - 0x2e8]
jne 0x10016e78
mov ecx, ebx
xor eax, eax
cmp ecx, dword [edx + 4]
setge al
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x3c]
mov dword [edx + 0xc], ecx
neg ecx
dec dword [ebp - 0x3c]
cmp eax, ecx
je 0x10016e97
xor eax, eax
inc eax
jmp 0x10016e99
mov eax, ebx
mov edx, dword [ebp - 0x38]
xor ecx, ecx
add edx, eax
mov eax, dword [ebp - 0x10]
cmp edx, eax
setge cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x2e8]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], 0xa480d8aa
call fcn.1000ba0d
push 4
lea ecx, [ebp - 0x2a8]
call fcn.1000b98b
xor eax, eax
mov dword [ebp - 4], esi
inc eax
mov dword [ebp - 0x20], 0x29000d4e
push eax
lea ecx, [ebp - 0x4b4]
call fcn.1000b98b
push 3
pop eax
mov byte [ebp - 4], al
mov dword [ebp - 0x3c], 0x813a3dbc
mov dword [ebp - 0x38], 0x7005
mov dword [ebp - 0x4c], 0xa4bc
mov dword [ebp - 0x2c], 0x16fb
cmp dword [ebp - 0x2c], 0x11f0
jge 0x10016fca
movsd xmm0, qword [0x10007e10]
mov eax, 0x106fb470
movsd qword [eax], xmm0
lea edi, [eax + 8]
mov esi, eax
mov ecx, 0xa2
add eax, 0x288
rep movsd dword es:[edi], dword [esi]
cmp eax, 0x106fe200
jle 0x10016f65
mov esi, 0x10007a10
jmp 0x10016fa9
mov edx, dword [ebp - 0x16c]
mov ecx, eax
call fcn.10015fce
push ecx
push ecx
movsd qword [esp], xmm0
push 0x10007a68
call fcn.10051846
add esp, 0xc
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0xd0]
push eax
push esi
call fcn.1005162b
mov eax, dword [ebp - 0xd0]
add esp, 0xc
test eax, eax
jne 0x10016f88
mov dword [ebp - 0x34], 6
or eax, 0xffffffff
mov dword [ebp - 0x2c], eax
xor edx, edx
mov dword [ebp - 0x44], 0xdda30181
inc edx
mov dword [ebp - 0x24], ebx
jmp 0x10016ff9
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4b4]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x10016fe6
push 2
mov dword [ebp - 0x24], ebx
pop ecx
jmp 0x10017017
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x304], 0xd62e652
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10017006
mov dword [ebp - 0x24], ebx
jmp 0x10017032
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x460], 0xfffffffa
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10017021
mov dword [ebp - 0x24], ebx
jmp 0x1001704d
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x154], 0x2c90
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x1001703c
mov eax, dword [ebp - 0x4b4]
cmp dword [eax], ebx
je 0x100170c3
cmp dword [ebp - 0x4c], ebx
je 0x10017067
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x304]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x304], eax
dec dword [ebp - 0x38]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x460]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x460]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x154]
sub edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x154]
setge cl
add eax, ecx
cmp eax, dword [ebp - 0x2c]
je 0x100170c3
xor esi, esi
inc esi
mov eax, esi
jmp 0x100170c8
xor esi, esi
mov eax, ebx
inc esi
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 2
call fcn.1000ba0d
mov dword [ebp - 0x20], 0x571177e8
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x10], ebx
jmp 0x100170fe
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x934], 0x45f1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100170ed
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xffffffe7
je 0x1001717a
lea edi, [ebp - 0x744]
lea esi, [ebp - 0x734]
movdqa xmm0, xmmword [0x10007e20]
push ecx
push esi
push edi
lea ecx, [ebp - 0x650]
movdqu xmmword [ebp - 0x744], xmm0
call fcn.1000b9e7
mov eax, dword [ebp - 0x650]
push 3
pop ecx
mov dword [eax + 8], ecx
mov dword [ebp - 0x10], 0x781ced8f
mov dword [ebp - 0x10], ebx
jmp 0x10017159
mov dword [ebp - 0x2c], 5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jle 0x1001714f
dec dword [eax + 8]
jns 0x10017143
lea ecx, [ebp - 0x650]
call fcn.1000ba0d
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe7
jne 0x10017119
mov dword [ebp - 0x10], ebx
jmp 0x10017192
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2a8]
mov dword [eax + ecx*4], 0x207
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1001717f
mov eax, 0x177e8edf
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x1c], 0x1ced
mov dword [ebp - 0x10], 0xfffffff8
mov dword [ebp - 0x54], 0x3d57638f
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x54], 0xbc8b6976
mov dword [ebp - 0x54], 0x83d4f39a
push 3
mov dword [ebp - 0x54], 2
mov dword [ebp - 0x20], ebx
pop ecx
jmp 0x100171fb
cmp dword [ebp - 0x20], ecx
jl 0x100171ea