Function at 0x1001a193
Capabilities:
Get keyboard layout
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1007cd6c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
movdqa xmm0, xmmword [0x10009500]
lea eax, [esp + 0x180]
push ebx
push esi
push edi
push dword [esp + 0x4c]
xor ebx, ebx
mov dword [esp + 0x54], edx
push eax
lea eax, [esp + 0x184]
mov dword [esp + 0x34], ecx
push eax
mov dword [esp + 0x1c], 0xfffffff8
lea ecx, [esp + 0xa8]
mov dword [esp + 0x28], 7
mov dword [esp + 0x2c], 0x20dd
push ebx
movdqu xmmword [esp + 0x18c], xmm0
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
call fcn.1001964e
push 4
mov dword [esp + 0x14], ebx
pop edi
jmp 0x1001a276
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1001a26b
mov dword [esp + 0x24], 0xa9bca7b5
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffc
jl 0x1001a23b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xf
jne 0x1001a229
mov dword [esp + 0x10], 0xffffffe3
jmp 0x1001a2de
mov dword [esp + 0x14], 0x8aac1e0f
mov dword [esp + 0x24], 0xa7967268
cmp dword [esp + 0x20], ebx
je 0x1001a2d2
cmp dword [esp + 0x14], ebx
je 0x1001a2a9
cmp dword [esp + 0x1c], ebx
jne 0x1001a2c6
mov eax, dword [esp + 0x14]
mov ecx, 0xa3a6
sub ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x14
jle 0x1001a287
lea ecx, [esp + 0x9c]
call fcn.100188fd
mov dword [esp + 0x10], 0x7865
xor ecx, ecx
mov dword [esp + 0x20], 0x23279329
inc ecx
mov dword [esp + 0x14], 0xc609e820
mov dword [esp + 0x20], 0x2fe868e0
mov dword [esp + 0x20], 0xcb070fcb
mov dword [esp + 0x20], 0x573c098b
mov dword [esp + 0x24], 0xe137c2b4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
sub eax, 0x214c
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, ecx
setle dl
xor ecx, ecx
add edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, edx
setle cl
cmp ecx, dword [esp + 0x10]
jg 0x1001a387
cmp dword [esp + 0x20], ebx
je 0x1001a387
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x1001a38c
xor ecx, ecx
mov eax, ebx
inc ecx
cmp eax, dword [esp + 0x10]
jne 0x1001a39a
cmp dword [esp + 0x10], ebx
jne 0x1001a39a
mov ecx, ebx
mov eax, dword [esp + 0x10]
add ecx, 0x43be4445
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0x10]
jl 0x1001a3c9
cmp dword [esp + 0x10], ebx
jne 0x1001a3c9
xor esi, esi
mov edx, ebx
inc esi
jmp 0x1001a3ce
xor esi, esi
inc esi
mov edx, esi
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, 2
setl cl
cmp ecx, dword [esp + 0x14]
jge 0x1001a3f3
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add ecx, 0xffff
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov ecx, 0x96add890
setne dl
imul eax, edx
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp ecx, eax
sbb eax, eax
neg eax
sub edx, eax
mov eax, dword [esp + 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, 0x3725ac95
setg cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x20], eax
jne 0x1001a468
mov eax, ebx
cmp dword [esp + 0x14], ebx
je 0x1001a46a
mov eax, esi
add eax, 0x139a850
lea ecx, [esp + 0x154]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0xfffffff9
push edi
call fcn.1001810a
mov dword [esp + 0x14], ebx
jmp 0x1001a4b8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], 0xb57e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1001a4a2
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 3
mov dword [esp + 0x14], ebx
pop esi
jmp 0x1001a528
mov dword [esp + 0x14], 0x4d2edc75
mov dword [esp + 0x14], ebx
jmp 0x1001a51e
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], bl
je 0x1001a4f9
push 0x1806
push ebx
push 0xd73
call edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextA]
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], bl
je 0x1001a51a
push 0x1ba5
push ebx
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolyline]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x1001a4db
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x18
je 0x1001a4cd
lea ecx, [esp + 0x154]
call fcn.100188fd
mov dword [esp + 0x10], 0xd5e48d32
mov dword [esp + 0x10], ebx
jmp 0x1001a55c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x160], 0x648261f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a549
xor ecx, ecx
mov dword [esp + 0x10], ebx
inc ecx
jmp 0x1001a57b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 0x9be1d925
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001a56b
mov dword [esp + 0x3c], 2
cmp dword [esp + 0x3c], ebx
jl 0x1001a5d9
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x1001a5d3
mov dword [esp + 0x24], 7
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + eax*4 + 0x160]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x160], ecx
xor eax, eax
test ecx, ecx
setns al
mov dword [esp + 0x24], eax
dec dword [esp + 0x14]
jns 0x1001a5a1
xor ecx, ecx
inc ecx
dec dword [esp + 0x3c]
jns 0x1001a58f
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x1b], bl
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], bl
je 0x1001a5fb
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], bl
je 0x1001a60c
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov esi, dword [sym.imp.USER32.dll_GetParent]
cmp byte [esp + 0x1b], bl
je 0x1001a6b2
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0xfc]
push 1
call fcn.1001810a
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001a647
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x34], 9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a637
mov dword [esp + 0x10], ebx
jmp 0x1001a669
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xfc]
mov dword [eax + ecx*4], 0xe2cf4565
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a653
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a686
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
xor edx, edx
inc edx
cmp dword [esp + 0x34], ebx
je 0x1001a696
mov eax, edx
mov ecx, edx
cmp eax, dword [esp + 0x34]
jle 0x1001a698
mov ecx, ebx
mov eax, dword [esp + 0xfc]
mov dword [eax], ecx
lea ecx, [esp + 0xfc]
call fcn.100188fd
call edi
push eax
call esi
push 4
lea ecx, [esp + 0xc0]
call fcn.1001810a
push 3
mov dword [esp + 0x20], 9
pop edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x1001a6ef
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001a6dd
mov dword [esp + 0x10], ebx
jmp 0x1001a70f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1b4], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a6fc
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a72a
push 0x1ea1
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov edx, dword [esp + 0xbc]
xor eax, eax
cmp dword [edx + 0xc], 0x100b
setge al
cmp eax, 3
mov dword [esp + 0x1b8], eax
sbb eax, eax
neg eax
imul eax, dword [edx + 8]
test eax, eax
jne 0x1001a75d
cmp dword [esp + 0x1c], ebx
jne 0x1001a75d
mov ecx, ebx
jmp 0x1001a760
xor ecx, ecx
inc ecx
xor eax, eax
cmp dword [edx + 8], ecx
mov edx, dword [edx + 8]
mov ecx, 0xeb9ae77a
setl al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
setg cl
sub ecx, edx
sub ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xbc]
sub ecx, 0x20225169
imul ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0xbc]
call fcn.100188fd
mov dword [esp + 0x10], 0xffffffe6
jmp 0x1001a808
mov dword [esp + 0x14], 0xd5e48d32
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a7cd
call edi
push eax
call esi
mov dword [esp + 0x14], 0xffffffe6
jmp 0x1001a7f6
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a7f2
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCurrentPositionEx]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x11
jge 0x1001a7d7
push ebx
call fcn.1001dbab
inc dword [esp + 0x14]
pop ecx
cmp dword [esp + 0x10], 0x11
jge 0x1001a7b6
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], 0xfffffff5
cmp dword [esp + 0x14], 0xffffffe7
jle 0x1001a925
mov dword [esp + 0x10], ecx
mov ecx, 0xea6801fc
mov eax, dword [esp + 0x14]
cmp ecx, eax
push 2
sbb eax, eax
neg eax
inc eax
je 0x1001a8b4
mov dword [esp + 0x24], 0xdbbe5689
lea ecx, [esp + 0x10c]
call fcn.1001810a
mov dword [esp + 0x24], 0xebbd4856
mov dword [esp + 0x1c], ebx
jmp 0x1001a876
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x108]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001a863
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x108]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x108]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], 1
jmp 0x1001a90e
lea ecx, [esp + 0x124]
call fcn.1001810a
push 2
mov dword [esp + 0x20], ebx
pop edx
jmp 0x1001a8df
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0x963ec58f
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x1001a8c9
mov dword [esp + 0x10], ebx
jmp 0x1001a901
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0x7f39cee2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a8eb
lea ecx, [esp + 0x120]
call fcn.100188fd
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe7
push 1
pop ecx
jg 0x1001a829
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x10], ebx
jne 0x1001a935
xor al, al
jmp 0x1001b2e0
mov dword [esp + 0x24], 0xfffffffb
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
jmp 0x1001a962
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x12c], 0xa136951a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001a94f
mov dword [esp + 0x10], ebx
jmp 0x1001a982
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x19c], 0xd1b9849b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001a96f
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a9a7
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
xor ecx, ecx
inc ecx
cmp dword [esp + 0x12c], ebx
jne 0x1001aa23
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x138]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
cmp dword [esp + 0x14], ebx
jne 0x1001aa23
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x1001aa10
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001a9fd
push 0xfbc
call edi
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov eax, dword [esp + 0x14]
cmp dword [esp + eax*4 + 0x19c], ebx
jne 0x1001aa10
dec dword [esp + 0x14]
jns 0x1001a9e5
push 3
pop edi
mov eax, dword [esp + 0x50]
mov dword [eax], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
jmp 0x1001aa8b
push 3
mov dword [esp + 0x28], 0xd9cd
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x14c]
pop edi
mov dword [esp + 0x24], 0x75cb5542
push edi
call fcn.1001810a
mov dword [esp + 0x1c], ebx
jmp 0x1001aa63
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0x7b445ace
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x1001aa4d
dec dword [esp + 0x20]
lea ecx, [esp + 0x148]
call fcn.100188fd
jmp 0x1001aa13
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x60], 0xcd16652d
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001aa7b
mov dword [esp + 0x14], ebx
jmp 0x1001ab17
xor ecx, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0x6edad94e
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], 0x2443
mov eax, dword [esp + 0x64]
cmp eax, 1
mov eax, dword [esp + 0x14]
setg cl
push 9
pop edx
sub edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
cmp eax, 6
mov eax, dword [esp + 0x64]
setge cl
sub eax, ecx
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x5d76
setg cl
xor eax, eax
cmp ecx, 0x53f3
setle al
cmp eax, 0xffffffff
sbb eax, eax
inc eax
mov dword [esp + 0x64], eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe3
jle 0x1001aa98
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x14], 0x10
jb 0x1001ab30
mov esi, dword [eax]
jmp 0x1001ab32
mov esi, eax
cmp dword [eax + 0x14], 0x10
jb 0x1001ab3c
mov ecx, dword [eax]
jmp 0x1001ab3e
mov ecx, eax
mov eax, dword [eax + 0x10]
add eax, ecx
push 4
cmp esi, eax
je 0x1001b157
pop eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14], 9
mov dword [esp + 0x20], 0xe8588d0d
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], ebx
jl 0x1001abab
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0xc8]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xc8]
cmp edx, eax
sete cl
mov dword [esp + 0x20], ecx
dec dword [esp + 0x14]
jns 0x1001ab84
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x7ddc85f7
mov dword [esp + 0x10], 0xfffffff4
jmp 0x1001acf8
mov dword [esp + 0x14], 0xffffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], 0x73bf38c0
mov dword [esp + 0x1c], 0xffffffff
push 2
call fcn.1001810a
xor edx, edx
inc edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x1c], ebx
jmp 0x1001ac19
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001ac03
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x14]
cmp eax, 0xa6e4
setg cl
cmp edx, ecx
mov ecx, dword [esp + 0x20]
sbb eax, eax
xor edx, edx
inc eax
sub ecx, eax
add ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0xd8]
call fcn.100188fd
mov eax, 0x9b546158
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x80], ebx
jmp 0x1001acea
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001acd2
push 0x16bf
push 0x7f33
push 0x1600
push 0x5d39
push 0x4128
push ebx
call fcn.1001b39d
add esp, 0x18
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001ace3
push ebx
call fcn.1001d056
pop ecx
inc dword [esp + 0x80]
cmp dword [esp + 0x80], 7
jge 0x1001aca6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xf
jl 0x1001abc8
mov al, byte [esi]
cmp al, 0x30
jl 0x1001ad28
cmp al, 0x39
jg 0x1001ad28
mov edx, dword [esp + 0x50]
movsx eax, al
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
jmp 0x1001ab32
mov dword [esp + 0x40], 0xffffffff
xor ecx, ecx
push 0xfffffffffffffff7
pop esi
mov dword [esp + 0x44], esi
inc ecx
mov dword [esp + 0x30], 0x5b8b78ac
mov dword [esp + 0x2c], 0x8b15
mov dword [esp + 0x94], 0xccc0
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], 0xe2efaada
mov dword [esp + 0x2c], 9
cmp dword [esp + 0x40], ebx
je 0x1001ad83
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x9642e40c
mov dword [esp + 0x30], 0x17
cmp dword [esp + 0x30], 0xfffffff4
je 0x1001aeea
jmp 0x1001adbf
xor ecx, ecx
inc ecx
push dword [esp + 0x4c]
movdqa xmm0, xmmword [0x10009510]
lea eax, [esp + 0x1a0]
mov dword [esp + 0x88], 0x84cbf776
push eax
mov dword [esp + 0x60], ebx
lea eax, [esp + 0x194]
mov dword [esp + 0x28], 0xb53cf54
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x90]
push eax
mov dword [esp + 0x28], 0xffffffff
push ebx
movdqu xmmword [esp + 0x19c], xmm0
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
call fcn.1001964e
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1c], ebx
jmp 0x1001ae49
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1a8], 0xfffffff6
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x1001ae36
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x38]
push eax
push 0x1939
push ebx
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x64]
push 0x7b12
push eax
call fcn.1001dd13
mov eax, dword [esp + 0x1d8]
add esp, 0x28
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
dec dword [ecx + 0xc]
xor eax, eax
inc eax
lea ecx, [esp + 0x88]
mov dword [esp + 0x20], eax
or dword [esp + 0x1cc], 0xffffffff
call fcn.100188fd
dec dword [esp + 0x30]
cmp dword [esp + 0x30], 0xfffffff4
jne 0x1001adbc
lea eax, [esp + 0x50]
push eax
push ebx
push 0x4be6
push 0x3c47
call fcn.1001b333
mov eax, 0x2d5e48d3
add esp, 0x10
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], 7
mov dword [esp + 0x54], 0x6ab2aee5
mov dword [esp + 0x14], 6
mov dword [esp + 0x70], 0x19adb821
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0xb8], 0x74d2d97b
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], ebx
jl 0x1001b132
mov dword [esp + 0x10], 0xfffffffe
xor ecx, ecx
mov dword [esp + 0x2c], 0x8213af72
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebx
jmp 0x1001af8d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x68], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001af81
mov dword [esp + 0x10], ebx
jmp 0x1001afaa
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x48], 0x66c1932e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001af9a
mov dword [esp + 0x68], edi
cmp dword [esp + 0x68], ebx
jl 0x1001afd1
lea eax, [esp + 0x3a]
mov byte [esp + 0x3a], bl
push ebx
push eax
call fcn.1001dbfd
dec dword [esp + 0x70]
pop ecx
pop ecx
jns 0x1001afba
mov dword [esp + 0x10], ebx
jmp 0x1001b0df
push 2
lea ecx, [esp + 0x140]
call fcn.1001810a
xor eax, eax
lea ecx, [esp + 0xe4]
inc eax
push edi
mov dword [esp + 0x1d0], eax
call fcn.1001810a
lea eax, [esp + 0x13c]
mov byte [esp + 0x1cc], 2
push eax
lea eax, [esp + 0x9c]
push eax
push ebx
call fcn.1001b5c4
push 0x973
push 0x1b82
push 0x48bd
push ebx
lea eax, [esp + 0xb4]
push eax
push 0x45c7
lea eax, [esp + 0x108]
push 0x4243
push eax
call fcn.1001b47c
add esp, 0x2c
dec dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0xa8]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xe4]
cmp dword [eax + 4], 0x3298
jle 0x1001b086
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0xa8]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax*4 + 0xa8]
mov ecx, dword [esp + 0x68]
sub ecx, 0xfffffffc
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp edx, ecx
lea ecx, [esp + 0xe4]
sete al
mov dword [esp + 0x54], eax
call fcn.100188fd
or dword [esp + 0x1cc], 0xffffffff
lea ecx, [esp + 0x13c]
call fcn.100188fd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x1001afda
mov dword [esp + 0x14], ebx
jmp 0x1001b122
mov dword [esp + 0x2c], ebx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xa8]
test eax, eax
mov eax, dword [esp + 0x14]
setne cl
add eax, ecx
cmp edi, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x4d257e7e
setle cl
mov dword [esp + 0x2c], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1001b0ef
dec dword [esp + 0x1c]
jns 0x1001af64
lea eax, [esp + 0x54]
push eax
push ebx
push 0x6843
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.1001dfff
add esp, 0x14
jmp 0x1001a92e
pop esi
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0xf0]
push esi
call fcn.1001810a
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1c], ebx
jmp 0x1001b18c
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0x87df2f4a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001b176
inc dword [esp + 0x14]
mov dword [esp + 0x14], ebx
jmp 0x1001b20d
lea eax, [esp + 0x3b]
mov dword [esp + 0x10], 0x3eee2fde
push eax
mov byte [esp + 0x3f], bl
push ebx
call fcn.1001d015
pop ecx
pop ecx
mov dword [esp + 0x10], ebx
jmp 0x1001b203
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], ebx
jl 0x1001b1ff
push ebx
lea eax, [esp + 0x3d]
mov byte [esp + 0x3d], bl
push 0x775e
push eax
call fcn.1001cf10
mov eax, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf0]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0x1c]
jns 0x1001b1cd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x1001b1bb
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1001b19c
or dword [esp + 0x1cc], 0xffffffff
lea ecx, [esp + 0xf0]
call fcn.100188fd
xor eax, eax
mov dword [esp + 0x24], 0xf390
inc eax
lea ecx, [esp + 0x114]
push eax
call fcn.1001810a
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001b258
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x4c], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b248
mov dword [esp + 0x10], ebx
jmp 0x1001b277
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x16c], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001b264
mov dword [esp + 0x10], ebx
jmp 0x1001b299
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 0x6173948b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b283
mov ecx, dword [esp + 0x4c]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp eax, ecx
setg dl
imul ecx, edx, 0x8e46
mov dword [esp + 0x178], ecx
mov edx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x114]
add edx, 0x6a5527ad
mov dword [ecx], edx
lea ecx, [esp + 0x114]
call fcn.100188fd
xor eax, eax
inc eax
mov ecx, dword [esp + 0x1c4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret