Function at 0x10015701
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007c13b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x568
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x10017d24
lea eax, [ebp + 0x14]
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x3c0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x30c]
movzx eax, byte [eax]
test eax, eax
je 0x10017ce2
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x14], 0xde05dae5
mov dword [ebp - 0x84], 3
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x3c8], 0x3e93d0b5
mov dword [ebp - 0x6c], 0x48f4a8fe
mov dword [ebp - 0x2d8], 0xcb2c
mov dword [ebp - 0x10c], 0
jmp 0x100157cb
mov eax, dword [ebp - 0x10c]
inc eax
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 3
jge 0x100157e7
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax*4 - 0x2c4], 0x29ef4a04
jmp 0x100157be
push 0xfe5
push 0
lea eax, [ebp - 0x3c8]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x84]
push eax
push 0x43a4
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0xae5
call fcn.10017d7d
add esp, 0x24
mov dword [ebp - 0x14], 0
jmp 0x1001582a
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jg 0x1001616f
mov dword [ebp - 0x284], 1
mov dword [ebp - 0x44c], 0xb88cdf8a
mov dword [ebp - 0x448], 0xb88cdf8a
mov dword [ebp - 0x444], 0xb88cdf8a
mov dword [ebp - 0x440], 0xb88cdf8a
lea ecx, [ebp - 0x139]
call fcn.100280ab
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x44c]
push eax
lea ecx, [ebp - 0x530]
call fcn.100280ae
push dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x3f0]
call fcn.1002805a
and dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4b0], 0x46dff617
mov dword [ebp - 0x3d0], 0x2021
cmp dword [ebp - 0x3d0], 0x1041
jge 0x10015b75
mov dword [ebp - 0x4f4], 0x3b9aca00
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x118]
push eax
push 0x1000b4a8
call fcn.100634cb
add esp, 0x10
push dword [ebp - 0x118]
lea ecx, [ebp - 0x3e0]
call fcn.10028260
mov byte [ebp - 4], 1
and dword [ebp - 0x108], 0
jmp 0x10015921
mov eax, dword [ebp - 0x108]
inc eax
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x118]
jge 0x1001594f
push dword [ebp - 0x108]
lea ecx, [ebp - 0x3e0]
call fcn.1002809c
push eax
push 0x1000b16c
call fcn.100634cb
pop ecx
pop ecx
jmp 0x10015914
push dword [ebp - 0x128]
lea ecx, [ebp - 0x2f0]
call fcn.10028260
mov byte [ebp - 4], 2
and dword [ebp - 0xd0], 0
jmp 0x1001597a
mov eax, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0x128]
jge 0x100159a8
push dword [ebp - 0xd0]
lea ecx, [ebp - 0x2f0]
call fcn.1002809c
push eax
push 0x1000b16c
call fcn.100634cb
pop ecx
pop ecx
jmp 0x1001596d
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x3e0]
call fcn.100282af
push dword [eax]
lea eax, [ebp - 0x514]
push eax
lea ecx, [ebp - 0x3e0]
call fcn.100282a1
push dword [eax]
call fcn.1002cdf4
pop ecx
pop ecx
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.100282af
push dword [eax]
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.100282a1
push dword [eax]
call fcn.1002cdf4
pop ecx
pop ecx
mov dword [ebp - 0xe0], 0x77359400
and dword [ebp - 0x8c], 0
jmp 0x10015a26
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x118]
cmp dword [ebp - 0x8c], eax
jg 0x10015b45
and dword [ebp - 0x80], 0
and dword [ebp - 0x60], 0
jmp 0x10015a4f
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x118]
jge 0x10015b12
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x60]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.1002809c
mov esi, eax
push dword [ebp - 0x60]
lea ecx, [ebp - 0x3e0]
call fcn.1002809c
mov eax, dword [eax]
sub eax, dword [esi]
mov dword [ebp - 0xd8], eax
jns 0x10015a9d
mov eax, dword [ebp - 0xd8]
neg eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x60]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.1002809c
mov ecx, dword [ebp - 0x408]
sub ecx, dword [eax]
mov dword [ebp - 0x110], ecx
jns 0x10015ad0
mov eax, dword [ebp - 0x110]
neg eax
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xd8]
add eax, dword [ebp - 0x110]
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x1d0]
jle 0x10015af8
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x2e0], eax
jmp 0x10015b04
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x80], eax
jmp 0x10015a48
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0xe0]
jge 0x10015b28
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x214], eax
jmp 0x10015b34
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0xe0], eax
jmp 0x10015a19
push dword [ebp - 0xe0]
push 0x1000b300
call fcn.100636ff
pop ecx
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f0]
call fcn.1002829c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x3e0]
call fcn.1002829c
mov dword [ebp - 0x318], 1
mov dword [ebp - 0x488], 0xa4ac155e
push 4
lea ecx, [ebp - 0x414]
call fcn.10027ffe
mov byte [ebp - 4], 3
mov dword [ebp - 0x3cc], 0
push 1
push 1
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.100105ea
add esp, 0x10
mov dword [ebp - 0x2c], 2
jmp 0x10015bce
mov eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x10015d99
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x3fc], 0xccfdef05
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x2c4]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x2c4], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x2c4], 0
je 0x10015c19
mov dword [ebp - 0x2a8], 1
jmp 0x10015c20
and dword [ebp - 0x2a8], 0
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x284], eax
push 2
lea ecx, [ebp - 0x3f0]
call fcn.1002809c
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x2c4]
cmp eax, dword [ebp - 0x14]
jne 0x10015c54
mov dword [ebp - 0x154], 1
jmp 0x10015c5b
and dword [ebp - 0x154], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x2c4]
cmp dword [ebp - 0x154], eax
jg 0x10015c79
mov dword [ebp - 0x2e4], 1
jmp 0x10015c80
and dword [ebp - 0x2e4], 0
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x15c]
cmp ecx, dword [ebp + eax*4 - 0x2c4]
jl 0x10015caa
mov dword [ebp - 0x21c], 1
jmp 0x10015cb1
and dword [ebp - 0x21c], 0
cmp dword [ebp - 0x21c], 0xce22955d
jae 0x10015cc9
mov dword [ebp - 0x164], 1
jmp 0x10015cd0
and dword [ebp - 0x164], 0
push 1
lea ecx, [ebp - 0x3f0]
call fcn.1002809c
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [eax]
jg 0x10015cf3
mov dword [ebp - 0x27c], 1
jmp 0x10015cfa
and dword [ebp - 0x27c], 0
cmp dword [ebp - 0x27c], 0xfce9
je 0x10015d21
push 2
lea ecx, [ebp - 0x3f0]
call fcn.1002809c
cmp dword [eax], 0
jne 0x10015d21
and dword [ebp - 0x16c], 0
jmp 0x10015d2b
mov dword [ebp - 0x16c], 1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp + ecx*4 - 0x2c4]
imul ecx, dword [ebp + eax*4 - 0x2c4]
dec ecx
cmp ecx, 1
jge 0x10015d52
mov dword [ebp - 0x224], 1
jmp 0x10015d59
and dword [ebp - 0x224], 0
cmp dword [ebp - 0x224], 0x34d89bb6
jge 0x10015d71
mov dword [ebp - 0x174], 1
jmp 0x10015d78
and dword [ebp - 0x174], 0
push 2
lea ecx, [ebp - 0x3f0]
call fcn.1002809c
mov ecx, dword [ebp - 0x174]
imul ecx, dword [eax]
mov dword [ebp - 0x3fc], ecx
jmp 0x10015bc7
mov dword [ebp - 0x6c], 0
jmp 0x10015da9
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 6
jle 0x1001614c
mov dword [ebp - 0x17c], 7
mov dword [ebp - 0x2ac], 0x2c66
mov dword [ebp - 0x374], 0x1000b4b8
cmp dword [ebp - 0x2ac], 0x2df4
jle 0x10015e81
and dword [ebp - 0x120], 0
jmp 0x10015df7
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0x30c6
jge 0x10015e81
and dword [ebp - 0xe8], 0
jmp 0x10015e19
mov eax, dword [ebp - 0xe8]
inc eax
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0x2ee6
jge 0x10015e7c
mov eax, dword [ebp - 0x120]
add eax, dword [ebp - 0xe8]
cdq
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x384], edx
push dword [ebp - 0x384]
push dword [ebp - 0x388]
lea ecx, [ebp - 0x578]
call fcn.1000e3f2
pop ecx
pop ecx
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
call fcn.10027c01
push eax
call fcn.100636ff
pop ecx
lea ecx, [ebp - 0x578]
call fcn.10027bf7
jmp 0x10015e0c
jmp 0x10015dea
mov dword [ebp - 0x31c], 0x8040
mov byte [ebp - 4], 4
cmp dword [ebp - 0x2ac], 0x2ab4
jge 0x10015ea7
push dword [ebp - 0x374]
call fcn.100636ff
pop ecx
jmp 0x10015ec3
mov dword [ebp - 4], 3
jmp 0x10015ed3
mov dword [ebp - 0x38c], 0xffffffff
mov dword [ebp - 0x104], 0
jmp 0x10015ef6
mov eax, dword [ebp - 0x104]
inc eax
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 2
jge 0x10015f12
mov eax, dword [ebp - 0x104]
mov dword [ebp + eax*4 - 0x394], 0xd9e6264a
jmp 0x10015ee9
mov dword [ebp - 0x2c], 0
jmp 0x10015f22
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 8
jge 0x1001602a
mov dword [ebp - 0x304], 0xdb22c08f
mov dword [ebp - 0x4a8], 0xce4ca00a
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x17c]
cmp eax, dword [ebp - 0x17c]
jne 0x10015f63
mov dword [ebp - 0x22c], 1
jmp 0x10015f6a
and dword [ebp - 0x22c], 0
mov eax, dword [ebp - 0x84]
cmp dword [ebp - 0x22c], eax
jle 0x10015f84
mov dword [ebp - 0x184], 1
jmp 0x10015f8b
and dword [ebp - 0x184], 0
mov eax, dword [ebp - 0x184]
sub eax, 0x422e76d1
cmp eax, 0x25a1b582
jl 0x10015fa9
mov dword [ebp - 0x18c], 1
jmp 0x10015fb0
and dword [ebp - 0x18c], 0
mov eax, dword [ebp - 0x284]
sub eax, dword [ebp - 0x18c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x84]
jne 0x10015fdc
mov dword [ebp - 0x234], 1
jmp 0x10015fe3
and dword [ebp - 0x234], 0
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x234], eax
jg 0x10015ffa
mov dword [ebp - 0x194], 1
jmp 0x10016001
and dword [ebp - 0x194], 0
imul eax, dword [ebp - 0x194], 0x6189
push 4
pop ecx
imul ecx, ecx, 0
mov dword [ebp + ecx - 0x394], eax
mov eax, dword [ebp - 0x2d8]
inc eax
mov dword [ebp - 0x2d8], eax
jmp 0x10015f1b
mov dword [ebp - 0x48], 0
jmp 0x1001603a
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x1a
jge 0x10016147
mov dword [ebp - 0x320], 0x5dbe4b24
cmp dword [ebp - 0x31c], 0
je 0x10016078
push 4
pop eax
imul eax, eax, 0
imul eax, dword [ebp + eax - 0x394], 5
mov ecx, dword [ebp - 0x6c]
add ecx, eax
je 0x10016078
mov dword [ebp - 0x19c], 1
jmp 0x1001607f
and dword [ebp - 0x19c], 0
mov eax, dword [ebp - 0x318]
add eax, dword [ebp - 0x19c]
jne 0x1001609a
push 2
lea ecx, [ebp - 0x414]
call fcn.1002809c
push 1
lea ecx, [ebp - 0x414]
call fcn.1002809c
cmp dword [eax], 1
jb 0x100160b8
mov dword [ebp - 0x23c], 1
jmp 0x100160bf
and dword [ebp - 0x23c], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x394]
cmp dword [ebp - 0x23c], eax
jge 0x100160e6
cmp dword [ebp - 0x3cc], 0
jne 0x100160e6
and dword [ebp - 0x1a4], 0
jmp 0x100160f0
mov dword [ebp - 0x1a4], 1
mov eax, dword [ebp - 0x320]
sub eax, dword [ebp - 0x1a4]
cmp eax, dword [ebp - 0x48]
jg 0x1001610d
mov dword [ebp - 0x28c], 1
jmp 0x10016114
and dword [ebp - 0x28c], 0
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x84], eax
push 0x9e3
push 1
push 0
lea eax, [ebp - 0x38c]
push eax
push 0x47f9
push 0x1df1
call fcn.100268d4
add esp, 0x18
jmp 0x10016033
jmp 0x10015da2
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x414]
call fcn.10028080
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3f0]
call fcn.10028080
jmp 0x10015823
mov eax, dword [0x1063d398]
and eax, 1
jne 0x100161a6
mov eax, dword [0x1063d398]
or eax, 1
mov dword [0x1063d398], eax
mov dword [ebp - 4], 6
mov ecx, 0x1063d3ec
call fcn.100283af
push 0x1007d432
call fcn.100636d5
pop ecx
or dword [ebp - 4], 0xffffffff
push 1
push 0xc36
push 1
call fcn.1001190b
add esp, 0xc
push dword [ebp - 0x288]
lea ecx, [ebp - 0x438]
call fcn.10027ef7
mov dword [ebp - 4], 7
mov dword [ebp - 0x28], 0x862fd41e
mov dword [ebp - 0x330], 0x355c0c8f
mov dword [ebp - 0x28], 0
jmp 0x100161f0
mov eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffeb
jg 0x100162ae
mov dword [ebp - 0x328], 0xffffffff
mov dword [ebp - 0x3f8], 0
push 2
lea ecx, [ebp - 0x464]
call fcn.10027ffe
mov byte [ebp - 4], 8
push 1
push 0x4fce
push 0x5584
lea eax, [ebp - 0x4b8]
push eax
push 0x4ada
lea eax, [ebp - 0x464]
push eax
push 0x7932
push 1
call fcn.10011a3e
add esp, 0x20
lea eax, [ebp - 0x328]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3f8]
push eax
push 0x5627
push 1
push 0x504b
lea eax, [ebp - 0x464]
push eax
push 0
call fcn.10011789
add esp, 0x20
mov byte [ebp - 0x56], 0
push 0x308f
lea eax, [ebp - 0x56]
push eax
push 1
push 1
push 0x48ea
call fcn.10011b6c
add esp, 0x14
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x464]
call fcn.10028080
jmp 0x100161e9
mov dword [ebp - 0x28], 0
jmp 0x100162be
mov eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xfffffffe
jg 0x100162e3
push 1
push 0x26c
lea eax, [ebp - 0x330]
push eax
push 0x34d2
push 1
call fcn.10011c5c
add esp, 0x14
jmp 0x100162b7
lea eax, [ebp - 0x4c0]
push eax
lea ecx, [ebp - 0x438]
call fcn.10027f4e
push dword [eax]
lea eax, [ebp - 0x4c8]
push eax
lea ecx, [ebp - 0x438]
call fcn.10027f62
push dword [eax]
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x438]
call fcn.10027f4e
push dword [eax]
mov edx, 0x1000e52b
lea ecx, [ebp - 0x4d8]
call fcn.1002cd2f
add esp, 0xc
lea ecx, [ebp - 0x438]
call fcn.1000e4b6
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x4c], 0xfffffffc
mov dword [ebp - 0x88], 0x207647f1
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x3d4], 8
mov dword [ebp - 0x340], 0xffffffff
mov dword [ebp - 0xf0], 0
jmp 0x10016392
mov eax, dword [ebp - 0xf0]
inc eax
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xf0], 2
jge 0x100163ae
mov eax, dword [ebp - 0xf0]
mov dword [ebp + eax*4 - 0x2b4], 1
jmp 0x10016385
mov dword [ebp - 0x38], 0
jmp 0x100163be
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0x16
jne 0x10016415
mov dword [ebp - 0x398], 0x170cd509
push 0
push 0x4c1d
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x3afe
push 0x2a3d
push 0x4910
push 1
push 0x71d7
push 0x5916
lea eax, [ebp - 0x88]
push eax
push 0x2d68
call fcn.10011081
add esp, 0x34
jmp 0x100163b7
cmp dword [ebp - 0x88], 0
je 0x100164c8
cmp dword [ebp - 0x38], 0
je 0x10016431
cmp dword [ebp - 0x88], 0
jne 0x10016440
cmp dword [ebp - 0x4c], 0
jne 0x10016440
and dword [ebp - 0x1ac], 0
jmp 0x1001644a
mov dword [ebp - 0x1ac], 1
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x1ac], eax
jg 0x10016461
mov dword [ebp - 0x244], 1
jmp 0x10016468
and dword [ebp - 0x244], 0
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x88], eax
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x88]
sub ecx, dword [ebp + eax - 0x2b4]
add ecx, 0xfff6
mov eax, dword [ebp - 0x4c]
neg eax
cmp eax, ecx
jne 0x100164a2
mov dword [ebp - 0x1b4], 1
jmp 0x100164a9
and dword [ebp - 0x1b4], 0
mov eax, dword [ebp - 0x1b4]
add eax, 0x43a64e79
mov dword [ebp - 0x2b8], eax
je 0x100164c8
mov dword [ebp - 0x338], 1
jmp 0x100164cf
and dword [ebp - 0x338], 0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4e0], eax
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [ebp + eax - 0x2b4]
je 0x100164f6
mov dword [ebp - 0x1bc], 1
jmp 0x100164fd
and dword [ebp - 0x1bc], 0
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x1bc], eax
jle 0x10016514
mov dword [ebp - 0x24c], 1
jmp 0x1001651b
and dword [ebp - 0x24c], 0
mov eax, dword [ebp - 0x24c]
neg eax
cmp eax, dword [ebp - 0x3d4]
jge 0x10016537
mov dword [ebp - 0x1c4], 1
jmp 0x1001653e
and dword [ebp - 0x1c4], 0
mov eax, dword [ebp - 0x1c4]
neg eax
cmp eax, dword [ebp - 0x4c]
jg 0x10016557
mov dword [ebp - 0x294], 1
jmp 0x1001655e
and dword [ebp - 0x294], 0
mov eax, dword [ebp - 0x340]
cmp dword [ebp - 0x294], eax
je 0x10016578
mov dword [ebp - 0x1cc], 1
jmp 0x1001657f
and dword [ebp - 0x1cc], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x2b4]
cmp dword [ebp - 0x1cc], eax
jl 0x100165a0
mov dword [ebp - 0x254], 1
jmp 0x100165a7
and dword [ebp - 0x254], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x2b4]
imul eax, dword [ebp - 0x254]
cmp eax, 0xffffffff
jbe 0x100165cc
mov dword [ebp - 0x1d4], 1
jmp 0x100165d3
and dword [ebp - 0x1d4], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x2b4]
cmp dword [ebp - 0x1d4], eax
je 0x100165f4
mov dword [ebp - 0x2dc], 1
jmp 0x100165fb
and dword [ebp - 0x2dc], 0
mov eax, dword [ebp - 0x2dc]
mov dword [ebp - 0x38], eax
movzx eax, byte [0x1063d369]
test eax, eax
je 0x100167d2
mov ecx, 0x1063d3ec
call fcn.10028466
movzx eax, al
test eax, eax
jne 0x100167d2
mov dword [ebp - 0x3a4], 0xffffffff
push 0x2255
push 0
lea eax, [ebp - 0x3a4]
push eax
call fcn.10026998
add esp, 0xc
mov byte [ebp - 0x59], 0
push 1
push 1
lea eax, [ebp - 0x59]
push eax
push 0x2f6f
push 0x60d6
push 0x78ea
call fcn.10011e4e
add esp, 0x18
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x1ec]
push eax
mov ecx, 0x1063d3ec
call fcn.1002846f
mov dword [ebp - 0x78], 0x39beb064
mov dword [ebp - 0x1dc], 0x4e1265ab
mov dword [ebp - 0x348], 0x1245c810
mov dword [ebp - 0x508], 0xe39f3faa
mov dword [ebp - 0x510], 0xffffffff
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x520], 1
mov dword [ebp - 0x528], 5
mov dword [ebp - 0x4d4], 9
mov dword [ebp - 0x400], 0xfffffffd
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x494], eax
xor eax, eax
jne 0x1001675b
cmp dword [ebp - 0x78], 0xa8d3
je 0x1001671b
mov dword [ebp - 0x25c], 1
jmp 0x10016722
and dword [ebp - 0x25c], 0
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x25c], eax
jle 0x10016739
mov dword [ebp - 0x1e4], 1
jmp 0x10016740
and dword [ebp - 0x1e4], 0
mov eax, dword [ebp - 0x78]
imul eax, dword [ebp - 0x1e4]
test eax, eax
jne 0x1001675b
xor eax, eax
jne 0x1001675b
and dword [ebp - 0x29c], 0
jmp 0x10016765
mov dword [ebp - 0x29c], 1
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x348], eax
push 1
lea eax, [ebp - 0x400]
push eax
push 0
call fcn.10010c64
add esp, 0xc
lea eax, [ebp - 0x524]
push eax
mov ecx, 0x1063d3ec
call fcn.100282a1
push eax
lea ecx, [ebp - 0x1ec]
call fcn.1002848a
movzx eax, al
test eax, eax
je 0x100167d2
lea ecx, [ebp - 0x1ec]
call fcn.10028484
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 4]
mov dword [ecx], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x438]
call fcn.10027f44
jmp 0x10017d42
and dword [ebp - 0x70], 0
mov dword [ebp - 0x1c], 0x29729cf3
mov dword [ebp - 0x1f4], 1
mov dword [ebp - 0x3b0], 0x39c9d940
mov dword [ebp - 0x14c], 5
mov dword [ebp - 0x358], 7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x1c], 1
jl 0x10016820
mov dword [ebp - 0x264], 1
jmp 0x10016827
and dword [ebp - 0x264], 0
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x264], eax
jne 0x1001683e
mov dword [ebp - 0x2c8], 1
jmp 0x10016845
and dword [ebp - 0x2c8], 0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
cmp eax, dword [ebp - 0x2c8]
jl 0x10016868
mov dword [ebp - 0x1fc], 1
jmp 0x1001686f
and dword [ebp - 0x1fc], 0
mov eax, dword [ebp - 0x1fc]
sub eax, 0x1fbc1109
imul eax, dword [ebp - 0x1c]
cmp eax, 0xfffffff8
jle 0x1001688f
mov dword [ebp - 0x26c], 1
jmp 0x10016896
and dword [ebp - 0x26c], 0
mov eax, 0x36b16b47
sub eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x1c]
jg 0x100168b2
mov dword [ebp - 0x204], 1
jmp 0x100168b9
and dword [ebp - 0x204], 0
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x204], eax
jge 0x100168d0
mov dword [ebp - 0x350], 1
jmp 0x100168d7
and dword [ebp - 0x350], 0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4dc], eax
cmp dword [ebp - 0x1c], 0
jne 0x100168f2
mov dword [ebp - 0x2a4], 1
jmp 0x100168f9
and dword [ebp - 0x2a4], 0
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x2a4], eax
jl 0x10016910
mov dword [ebp - 0x20c], 1
jmp 0x10016917
and dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x3b0]
cmp dword [ebp - 0x20c], eax
je 0x10016931
mov dword [ebp - 0x274], 1
jmp 0x10016938
and dword [ebp - 0x274], 0
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jne 0x1001695b
xor eax, eax
inc eax
jne 0x1001695b
and dword [ebp - 0x150], 0
jmp 0x10016965
mov dword [ebp - 0x150], 1
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x358], eax
mov byte [ebp - 0x4d], 0
push 0x42e6
push 1
push 0x668d
lea eax, [ebp - 0x4d]
push eax
push 1
call fcn.10014a83
add esp, 0x14
lea eax, [ebp - 0x438]
push eax
call fcn.100105af
pop ecx
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jne 0x100179db
cmp dword [0x1063d36c], 0
jne 0x100179bd
mov dword [ebp - 0x54], 0xb8f5
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0x168], 0xfffffff9
push 1
lea ecx, [ebp - 0x420]
call fcn.10027ffe
mov byte [ebp - 4], 9
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x24], 0
jmp 0x100169fc
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jge 0x10016a12
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x188], 0x523dd972
jmp 0x100169f5
mov dword [ebp - 0x24], 0
jmp 0x10016a22
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 2
jge 0x10016a38
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x3a0], 0xffffffff
jmp 0x10016a1b
push 0x1dd7
push 1
lea eax, [ebp - 0x420]
push eax
push 1
push 0x20a5
lea eax, [ebp - 0x24]
push eax
push 0x600f
call fcn.10010ce2
add esp, 0x1c
mov byte [ebp - 0x57], 0
push 1
lea eax, [ebp - 0x57]
push eax
push 0x47f6
push 0x1d42
call fcn.10010dc9
add esp, 0x10
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x4a4], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0xc8], 0
jge 0x10016aaa
mov eax, 0xb5af9f7c
test eax, eax
jne 0x10016aaa
mov dword [ebp - 0x158], 1
jmp 0x10016ab1
and dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x3e4], eax
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x3e4]
mov dword [ebp + eax - 0x188], ecx
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0xc8], 0
je 0x10016af6
xor eax, eax
inc eax
je 0x10016af6
mov dword [ebp - 0x160], 1
jmp 0x10016afd
and dword [ebp - 0x160], 0
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x170], eax
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x170]
mov dword [ebp + eax - 0x3a0], ecx
cmp dword [ebp - 0x170], 0
je 0x10016b46
mov eax, 0xc9ba5b0
test eax, eax
je 0x10016b46
mov dword [ebp - 0x144], 1
jmp 0x10016b4d
and dword [ebp - 0x144], 0
push 0
lea ecx, [ebp - 0x420]
call fcn.1002809c
mov ecx, dword [ebp - 0x144]
mov dword [eax], ecx
cmp dword [ebp - 0x144], 0x4def
jge 0x10016b7a
mov dword [ebp - 0x178], 1
jmp 0x10016b81
and dword [ebp - 0x178], 0
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0x178]
je 0x10016bab
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x3a0], 0
je 0x10016bab
mov dword [ebp - 0x180], 1
jmp 0x10016bb2
and dword [ebp - 0x180], 0
mov eax, dword [ebp - 0x54]
imul eax, dword [ebp - 0x180]
cmp eax, dword [ebp - 0x54]
jg 0x10016bc7
cmp dword [ebp - 0x54], 0
je 0x10016bfb
mov byte [ebp - 0x41], 0
push 0x2e82
push 1
push 1
push 0x1e7a
push 0
push 0x1242
push 0x8ed
push 0x5516
lea eax, [ebp - 0x41]
push eax
call fcn.100155e5
add esp, 0x24
jmp 0x10016d6b
mov dword [ebp - 0x114], 0x2f1efae0
mov dword [ebp - 0x3bc], 0x3fa3ce72
mov dword [ebp - 0xf8], 0
jmp 0x10016c28
mov eax, dword [ebp - 0xf8]
inc eax
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 2
jge 0x10016c44
mov eax, dword [ebp - 0xf8]
mov dword [ebp + eax*4 - 0x490], 1
jmp 0x10016c1b
push 9
pop eax
test eax, eax
je 0x10016d58
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0x114]
jl 0x10016d0b
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x188]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x114], 0
jne 0x10016c8a
xor eax, eax
jne 0x10016c8a
and dword [ebp - 0x190], 0
jmp 0x10016c94
mov dword [ebp - 0x190], 1
push 0
lea ecx, [ebp - 0x420]
call fcn.1002809c
mov ecx, dword [ebp - 0x190]
sub ecx, dword [eax]
cmp ecx, 0x10dec533
jle 0x10016cbd
mov dword [ebp - 0x130], 1
jmp 0x10016cc4
and dword [ebp - 0x130], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x130]
mov dword [ebp + eax - 0x490], ecx
cmp dword [ebp - 0x130], 0xff78
jle 0x10016cef
mov dword [ebp - 0x360], 1
jmp 0x10016cf6
and dword [ebp - 0x360], 0
cmp dword [ebp - 0x114], 0
je 0x10016d0b
mov dword [ebp - 0x198], 1
jmp 0x10016d12
and dword [ebp - 0x198], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x3a0]
cmp eax, dword [ebp - 0x198]
jle 0x10016d33
mov dword [ebp - 0x1a0], 1
jmp 0x10016d3a
and dword [ebp - 0x1a0], 0
cmp dword [ebp - 0x1a0], 5
ja 0x10016d4c
cmp dword [ebp - 0x1a8], 0
je 0x10016d58
mov dword [ebp - 0x1b0], 1
jmp 0x10016d5f
and dword [ebp - 0x1b0], 0
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x3bc], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x420]
call fcn.10028080
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x370], 0
mov dword [ebp - 0x378], 9
mov dword [ebp - 0x100], 0
jmp 0x10016dae
mov eax, dword [ebp - 0x100]
inc eax
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 1
jge 0x10016dca
mov eax, dword [ebp - 0x100]
mov dword [ebp + eax*4 - 0x404], 0
jmp 0x10016da1
cmp dword [ebp - 0x18], 8
jbe 0x10016ddc
mov dword [ebp - 0x368], 1
jmp 0x10016de3
and dword [ebp - 0x368], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x4e4], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x18]
jl 0x10016e00
mov dword [ebp - 0x1b8], 1
jmp 0x10016e07
and dword [ebp - 0x1b8], 0
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x1b8]
cmp eax, dword [ebp - 0x18]
jl 0x10016e23
xor eax, eax
jne 0x10016e23
and dword [ebp - 0x1c0], 0
jmp 0x10016e2d
mov dword [ebp - 0x1c0], 1
cmp dword [ebp - 0x1c0], 0xffffffff
jne 0x10016e42
mov dword [ebp - 0x1c8], 1
jmp 0x10016e49
and dword [ebp - 0x1c8], 0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x1c8], eax
jg 0x10016e60
mov dword [ebp - 0x148], 1
jmp 0x10016e67
and dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x18]
neg eax
cmp eax, dword [ebp - 0x148]
jle 0x10016e80
mov dword [ebp - 0x1d8], 1
jmp 0x10016e87
and dword [ebp - 0x1d8], 0
mov eax, dword [ebp - 0x1d8]
add eax, 0xc607
je 0x10016f91
mov dword [ebp - 0x18], 0
jmp 0x10016ea8
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x10016f8f
mov dword [ebp - 0x64], 0xfffffffb
mov dword [ebp - 0x3c4], 0x4433ac25
mov dword [ebp - 0x64], 0
jmp 0x10016ed3
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jl 0x10016f8a
mov byte [ebp - 0x58], 0
push 1
push 0x3954
push 1
push 1
lea eax, [ebp - 0x58]
push eax
push 0x2671
call fcn.10014cb4
add esp, 0x18
mov eax, 0xc4aee507
test eax, eax
je 0x10016f6e
mov eax, dword [ebp - 0x64]
cmp dword [ebp + eax*4 - 0x404], 0
jne 0x10016f21
xor eax, eax
inc eax
jne 0x10016f21
and dword [ebp - 0x1e0], 0
jmp 0x10016f2b
mov dword [ebp - 0x1e0], 1
mov eax, dword [ebp - 0x370]
cmp eax, dword [ebp - 0x64]
jl 0x10016f42
mov dword [ebp - 0x1e8], 1
jmp 0x10016f49
and dword [ebp - 0x1e8], 0
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x1e0]
imul eax, dword [ebp - 0x1e8]
cmp eax, dword [ebp - 0x3c4]
jne 0x10016f6e
mov dword [ebp - 0x1f0], 1
jmp 0x10016f75
and dword [ebp - 0x1f0], 0
imul eax, dword [ebp - 0x1f0], 0xd29e
mov dword [ebp - 0x378], eax
jmp 0x10016ecc
jmp 0x10016ea1
jmp 0x10016fc7
mov byte [ebp - 0x55], 0
movzx eax, byte [ebp - 0x55]
test eax, eax
je 0x10016fc7
push 0x261e
push 1
push 0x1645
push 0x364e
push 0x5476
push 0x2e1
push 1
push 0x5b36
call fcn.10014d95
add esp, 0x20
mov byte [ebp - 0xac], 1
mov byte [ebp - 0xab], 0x63
mov byte [ebp - 0xaa], 0xb
mov byte [ebp - 0xa9], 9
mov byte [ebp - 0xa8], 0
mov byte [ebp - 0xa7], 0x27
mov byte [ebp - 0xa6], 9
mov byte [ebp - 0xa5], 0x2f
mov byte [ebp - 0xa4], 0xa
mov byte [ebp - 0xa3], 8
mov byte [ebp - 0xa2], 5
mov byte [ebp - 0xa1], 0
mov byte [ebp - 0xa0], 3
mov byte [ebp - 0x9f], 2
mov byte [ebp - 0x9e], 8
mov byte [ebp - 0x9d], 0x40
mov byte [ebp - 0x9c], 4
mov byte [ebp - 0x9b], 0x4b
mov byte [ebp - 0x9a], 7
mov byte [ebp - 0x99], 0x57
mov byte [ebp - 0x98], 6
mov byte [ebp - 0x97], 1
mov byte [ebp - 0x96], 2
mov byte [ebp - 0x95], 0x41
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0xac]
and eax, 6
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0xac]
or ecx, 6
sub ecx, eax
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0xac]
mov word [ebp + eax*2 - 0x480], cx
mov dword [ebp - 0x20], 2
and dword [ebp - 0x140], 0
jmp 0x100170c1
mov eax, dword [ebp - 0x20]
inc eax
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x18
jae 0x10017159
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x140]
movzx eax, byte [ebp + eax - 0xae]
movzx eax, word [ebp + eax*2 - 0x480]
mov ecx, dword [ebp - 0x20]
movzx ecx, byte [ebp + ecx - 0xab]
and ecx, eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x140]
movzx eax, byte [ebp + eax - 0xae]
movzx eax, word [ebp + eax*2 - 0x480]
mov edx, dword [ebp - 0x20]
movzx edx, byte [ebp + edx - 0xab]
and edx, eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x140]
movzx eax, byte [ebp + eax - 0xae]
movzx eax, word [ebp + eax*2 - 0x480]
mov esi, dword [ebp - 0x20]
movzx esi, byte [ebp + esi - 0xab]
add esi, eax
sub esi, edx
sub esi, ecx
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0xac]
mov word [ebp + eax*2 - 0x480], si
jmp 0x100170b9
push 2
pop eax
imul eax, eax, 0xc
xor ecx, ecx
mov word [ebp + eax - 0x480], cx
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0x560]
call fcn.10027f1f
mov dword [ebp - 0x3f4], eax
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x310], eax
mov byte [ebp - 4], 0xa
push dword [ebp - 0x310]
call fcn.100105af
pop ecx
mov dword [ebp - 0x280], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x560]
call fcn.10027f44
push 2
lea ecx, [ebp - 0x458]
call fcn.10027ffe
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x32c], 7
lea eax, [ebp - 0x4b4]
push eax
push 0x3a44
push 0x1dc2
lea eax, [ebp - 0x458]
push eax
push 1
push 0
call fcn.10017dac
add esp, 0x18
mov dword [ebp - 0x314], 0x24e3
cmp dword [ebp - 0x314], 0xf5a
jge 0x1001733f
and dword [ebp - 0x7c], 0
and dword [ebp - 0x138], 0
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x7c]
push eax
push 0x1000b534
call fcn.100634cb
add esp, 0xc
xor ecx, ecx
mov eax, dword [ebp - 0x7c]
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005eaad
pop ecx
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x40], eax
and dword [ebp - 0x11c], 0
jmp 0x1001726b
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
cmp eax, dword [ebp - 0x7c]
jge 0x10017291
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x40]
lea eax, [ecx + eax*4]
push eax
push 0x1000b168
call fcn.100634cb
pop ecx
pop ecx
jmp 0x1001725e
and dword [ebp - 0x12c], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + eax]
cmp eax, dword [ebp - 0x138]
jge 0x10017318
and dword [ebp - 0x34], 0
jmp 0x100172b9
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x7c]
jge 0x10017309
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ebp - 0x138]
jne 0x100172d6
jmp 0x10017309
mov eax, dword [ebp - 0x7c]
dec eax
cmp dword [ebp - 0x34], eax
je 0x100172f4
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
cmp eax, dword [esi + edx*4 + 4]
jge 0x10017307
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
inc eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov dword [edx + ecx*4], eax
jmp 0x100172b2
mov eax, dword [ebp - 0x12c]
inc eax
mov dword [ebp - 0x12c], eax
jmp 0x10017298
push dword [ebp - 0x12c]
push 0x1000b300
call fcn.100636ff
pop ecx
pop ecx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x324], eax
push dword [ebp - 0x324]
call fcn.10063840
pop ecx
push 1
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x458]
push eax
push 1
push 0x5fdb
push 0x3ae1
call fcn.10014e95
add esp, 0x18
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x458]
call fcn.10028080
and dword [ebp - 0x124], 0
jmp 0x10017388
mov eax, dword [ebp - 0x124]
inc eax
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0xd
jae 0x100173a3
xor eax, eax
mov ecx, dword [ebp - 0x124]
mov word [ebp + ecx*2 - 0x480], ax
jmp 0x1001737b
push 1
lea ecx, [ebp - 0x2d4]
call fcn.10027ffe
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x238], 0xffffffff
mov dword [ebp - 0x74], 0xfffffff8
mov dword [ebp - 0x208], 0xaa7054f8
mov dword [ebp - 0x134], 0xfffffff7
mov dword [ebp - 0x230], 1
mov dword [ebp - 0xcc], 0
jmp 0x100173fc
mov eax, dword [ebp - 0xcc]
inc eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 1
jge 0x1001741e
push dword [ebp - 0xcc]
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
mov dword [eax], 0x3ae35568
jmp 0x100173ef
push 0
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
mov dword [eax], 0x1a
jmp 0x10017457
push 0
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax]
dec eax
mov ecx, dword [ebp - 0x1f8]
mov dword [ecx], eax
push 0
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
cmp dword [eax], 0xfffffff3
jne 0x100177c0
mov dword [ebp - 0x68], 0x17c7747b
mov dword [ebp - 0x94], 0xbc1c234a
mov dword [ebp - 0x90], 0x63d62a04
mov dword [ebp - 0xdc], 0xd20a2e71
push 0x1d17
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x74]
push eax
push 0
push 0x9e1
lea eax, [ebp - 0x94]
push eax
call fcn.1001807c
add esp, 0x24
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
add eax, dword [ebp - 0x94]
cmp eax, 7
jne 0x10017505
cmp dword [ebp - 0x74], 0
jne 0x10017505
push 0
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
cmp dword [eax], 0
jne 0x10017505
and dword [ebp - 0x200], 0
jmp 0x1001750f
mov dword [ebp - 0x200], 1
cmp dword [ebp - 0x200], 7
jbe 0x10017524
mov dword [ebp - 0x210], 1
jmp 0x1001752b
and dword [ebp - 0x210], 0
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x208]
imul eax, dword [ebp - 0x210]
test eax, eax
je 0x10017558
push 3
pop eax
test eax, eax
je 0x10017558
mov dword [ebp - 0x218], 1
jmp 0x1001755f
and dword [ebp - 0x218], 0
push 0
lea ecx, [ebp - 0x2d4]
call fcn.1002809c
mov ecx, dword [ebp - 0x218]
imul ecx, dword [eax]
test ecx, ecx
je 0x1001757f
cmp dword [ebp - 0x68], 0
jne 0x10017586
cmp dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x51c], eax
mov eax, 0x3565
sub eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x68]
jne 0x100175a8
mov dword [ebp - 0x220], 1
jmp 0x100175af
and dword [ebp - 0x220], 0
mov eax, dword [ebp - 0xdc]
add eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0xdc]
neg ecx
cmp ecx, eax
jle 0x100175d3
mov dword [ebp - 0x228], 1
jmp 0x100175da
and dword [ebp - 0x228], 0
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0xc8c5
jle 0x100175fe
mov dword [ebp - 0x240], 1
jmp 0x10017605
and dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
imul eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x240]
jne 0x1001762f
mov dword [ebp - 0x248], 1
jmp 0x10017636
and dword [ebp - 0x248], 0
cmp dword [ebp - 0x248], 6
je 0x10017686
push 0x759f
push 0x2da7
push 0xd52
push 1
push 0
push 0x4620
push 0x10e1
push 1
push 0x5890
call fcn.10026f3b
add esp, 0x24
push 1
push 1
push 0x4ddc
push 0x20db
call fcn.100116d2
add esp, 0x10
jmp 0x100177bb
mov dword [ebp - 0x334], 0xfffffffd
mov dword [ebp - 0xd4], 0
jmp 0x100176a9
mov eax, dword [ebp - 0xd4]
inc eax
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 2
jge 0x100176c5
mov eax, dword [ebp - 0xd4]
mov dword [ebp + eax*4 - 0x3ac], 0xb52d9b6e
jmp 0x1001769c
mov eax, dword [ebp - 0x334]
push 4
pop ecx
shl ecx, 0
mov dword [ebp + ecx - 0x3ac], eax
push 4
pop eax
shl eax, 0
cmp dword [ebp + eax - 0x3ac], 0
je 0x10017787
cmp dword [ebp - 0xdc], 1
jae 0x10017701
mov dword [ebp - 0x250], 1
jmp 0x10017708
and dword [ebp - 0x250], 0
mov eax, dword [ebp - 0x134]
cmp eax, dword [ebp - 0x250]
jne 0x1001777b
cmp dword [ebp - 0x94], 1
je 0x1001772b
mov dword [ebp - 0x258], 1
jmp 0x10017732
and dword [ebp - 0x258], 0
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x94], eax
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [ebp + eax - 0x3ac]
je 0x1001775f
mov dword [ebp - 0x260], 1
jmp 0x10017766
and dword [ebp - 0x260], 0
mov eax, dword [ebp - 0x68]
imul eax, dword [ebp - 0x260]
test eax, eax
jne 0x1001777b
push 0xfffffffffffffff7
pop eax
test eax, eax
je 0x10017787
mov dword [ebp - 0x268], 1
jmp 0x1001778e
and dword [ebp - 0x268], 0
mov eax, dword [ebp - 0x90]
cmp dword [ebp - 0x268], eax
jl 0x100177a8
mov dword [ebp - 0x270], 1
jmp 0x100177af
and dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x90], eax
jmp 0x10017433
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2d4]
call fcn.10028080
cmp dword [ebp - 0x280], 0
je 0x100179bd
mov byte [ebp - 0xc4], 0
mov byte [ebp - 0xc3], 3
mov byte [ebp - 0xc2], 5
mov byte [ebp - 0xc1], 0x25
mov byte [ebp - 0xc0], 4
mov byte [ebp - 0xbf], 0x25
mov byte [ebp - 0xbe], 0xb
mov byte [ebp - 0xbd], 0x1b
mov byte [ebp - 0xbc], 1
mov byte [ebp - 0xbb], 0x38
mov byte [ebp - 0xba], 3
mov byte [ebp - 0xb9], 0xb
mov byte [ebp - 0xb8], 2
mov byte [ebp - 0xb7], 5
mov byte [ebp - 0xb6], 6
mov byte [ebp - 0xb5], 3
mov byte [ebp - 0xb4], 8
mov byte [ebp - 0xb3], 3
mov byte [ebp - 0xb2], 7
mov byte [ebp - 0xb1], 0x13
mov byte [ebp - 0xb0], 9
mov byte [ebp - 0xaf], 0
mov byte [ebp - 0xae], 0xa
mov byte [ebp - 0xad], 0xb
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0xc4]
and eax, 0x4f
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0xc4]
or ecx, 0x4f
sub ecx, eax
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0xc4]
mov byte [ebp + eax - 0x300], cl
mov dword [ebp - 0x3c], 2
and dword [ebp - 0x278], 0
jmp 0x100178d5
mov eax, dword [ebp - 0x3c]
inc eax
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x18
jae 0x1001793d
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x278]
movzx eax, byte [ebp + eax - 0xc6]
movsx eax, byte [ebp + eax - 0x300]
mov ecx, dword [ebp - 0x3c]
movzx ecx, byte [ebp + ecx - 0xc3]
and ecx, eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x278]
movzx eax, byte [ebp + eax - 0xc6]
movsx eax, byte [ebp + eax - 0x300]
mov edx, dword [ebp - 0x3c]
movzx edx, byte [ebp + edx - 0xc3]
or edx, eax
sub edx, ecx
mov eax, dword [ebp - 0x3c]
movzx eax, byte [ebp + eax - 0xc4]
mov byte [ebp + eax - 0x300], dl
jmp 0x100178cd
xor eax, eax
inc eax
imul eax, eax, 0xc
mov byte [ebp + eax - 0x300], 0
lea eax, [ebp - 0x300]
push eax
lea ecx, [ebp - 0x548]
call fcn.10027f8b
mov byte [ebp - 4], 0xd
and dword [ebp - 0xe4], 0
jmp 0x10017977
mov eax, dword [ebp - 0xe4]
inc eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0xd
jae 0x10017990
mov eax, dword [ebp - 0xe4]
mov byte [ebp + eax - 0x300], 0
jmp 0x1001796a
push 0
push 0
lea eax, [ebp - 0x548]
push eax
push dword [ebp - 0x280]
call fcn.1001d8e3
add esp, 0x10
mov dword [0x1063d36c], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x548]
call fcn.10027fae
cmp dword [0x1063d36c], 0
je 0x100179db
mov ecx, dword [ebp - 0x288]
call fcn.10027f80
push eax
call dword [0x1063d36c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0xec], 5
mov dword [ebp - 0xec], 0xffffffe9
jmp 0x100179fe
mov eax, dword [ebp - 0xec]
inc eax
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0x13
jg 0x10017a7e
mov dword [ebp - 0x33c], 1
push 0x5f68
push 1
push 0x718e
push 0x7800
push 0x6b1d
push 0x6c57
push 0x14ef
push 1
push 0x7f82
push 0xda4
push 0x17ee
push 0x7b34
push 0x49be
push 0xda6
lea eax, [ebp - 0x33c]
push eax
push 0x5be7
push 0x7ee6
push 0x4603
push 0x61d3
push 0x7896
call fcn.10015313
add esp, 0x50
jmp 0x100179f1
cmp dword [ebp - 0x70], 0
je 0x10017af7
movzx eax, byte [0x1063d369]
test eax, eax
je 0x10017aa0
mov ecx, 0x1063d3ec
call fcn.10028466
movzx eax, al
test eax, eax
jne 0x10017af7
lea eax, [ebp - 0x70]
push eax
push 1
push 1
push 0x5338
push 1
lea eax, [ebp - 0x290]
push eax
push 0x388d
push 0x1063d3ec
push 0x5b70
call fcn.100155e5
add esp, 0x24
push 0x7c14
push 0x369a
push 0x26ff
push 0x401d
push 1
push 0x1063d369
push 0x20c5
push 1
call fcn.10011789
add esp, 0x20
mov dword [ebp - 0x34c], 0xf782
mov dword [ebp - 0x344], 5
mov dword [ebp - 0x4bc], 0x250db856
push 1
lea ecx, [ebp - 0x500]
call fcn.10027ffe
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x30], 0
jmp 0x10017b36
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x10017b52
push dword [ebp - 0x30]
lea ecx, [ebp - 0x500]
call fcn.1002809c
mov dword [eax], 0xe9fb1c03
jmp 0x10017b2f
mov dword [ebp - 0x30], 0
jmp 0x10017b62
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 3
jge 0x10017b78
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x4f0], 6
jmp 0x10017b5b
lea eax, [ebp - 0x344]
push eax
push 0x1d2
push 0
push 1
lea eax, [ebp - 0x34c]
push eax
call fcn.10011b6c
add esp, 0x14
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x4f0]
dec eax
push 4
pop ecx
shl ecx, 0
mov dword [ebp + ecx - 0x4f0], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x500]
call fcn.10028080
mov dword [ebp - 0x2a0], 0x3714
mov dword [ebp - 0x354], 0x1000b540
cmp dword [ebp - 0x2a0], 0x3a55
jle 0x10017c66
and dword [ebp - 0xf4], 0
jmp 0x10017bfb
mov eax, dword [ebp - 0xf4]
inc eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0x2c2e
jge 0x10017c5e
and dword [ebp - 0xfc], 0
jmp 0x10017c1d
mov eax, dword [ebp - 0xfc]
inc eax
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0x1998
jge 0x10017c5c
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xfc]
shl eax, cl
cdq
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3b4], edx
push dword [ebp - 0x3b4]
push dword [ebp - 0x3b8]
mov ecx, 0x10623738
call fcn.10027de2
jmp 0x10017c10
jmp 0x10017bee
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x70]
mov dword [eax], ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x438]
call fcn.10027f44
jmp 0x10017d42
mov eax, dword [ebp - 0x35c]
mov dword [ebp - 0x364], eax
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x36c], eax
mov eax, dword [ebp - 0x36c]
movzx eax, byte [eax]
test eax, eax
je 0x10017d22
push 1
push 0
push 0x79b
push 0x1de3
push 0x78b
call fcn.1000f82c
add esp, 0x14
jmp 0x10017d42
push 0xfa5
push 0x5d6d
push 0x7154
push 0
push 0x705e
call fcn.10026a5f
add esp, 0x14
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret