Function at 0x100712c4
Capabilities:
Get keyboard layout

Disassembly:
mov eax, 0x10143106
call fcn.1013e250
sub esp, 0x184
push ebx
mov ebx, dword [ebp + 8]
push esi
mov byte [ebp - 0x25], dl
xor edx, edx
push edi
mov edi, ecx
test ebx, ebx
je 0x100712f9
cmp dword [ebx + 0x14], 8
mov dword [ebx + 0x10], edx
jb 0x100712f2
mov eax, dword [ebx]
jmp 0x100712f4
mov eax, ebx
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x10], 0x5a136951
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], edx
jmp 0x10071316
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x34], 0x8ec0ae97
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x10071308
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x1007139e
mov dword [ebp - 0x24], 0xbf0ddd9c
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x34], edx
jne 0x10071351
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x34], edx
jne 0x10071351
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x34], edx
jne 0x10071351
mov esi, edx
jmp 0x10071354
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
push 0
setne cl
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
add eax, 9
add ecx, eax
mov eax, dword [ebp - 0x10]
neg ecx
pop edx
sbb ecx, ecx
neg ecx
mov dword [ebp + eax*4 - 0x34], esi
mov eax, dword [ebp - 0x1c]
imul eax, ecx
xor ecx, ecx
cmp esi, eax
sete cl
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 0x10]
jns 0x10071324
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x54]
push edi
mov dword [ebp - 0x34], eax
call fcn.10013ddc
and dword [ebp - 4], 0
cmp byte [ebp - 0x25], 0
je 0x100713e7
cmp dword [ebp - 0x40], 8
lea ecx, [ebp - 0x54]
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x54]
cmovae ecx, dword [ebp - 0x54]
cmovae edx, dword [ebp - 0x54]
push edx
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x54]
cmovae ecx, dword [ebp - 0x54]
push eax
push ecx
lea ecx, [ebp - 0xb0]
call fcn.1007bea8
add esp, 0xc
lea eax, [ebp - 0x94]
push 0xc3e7
push eax
call fcn.10019967
pop ecx
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x1c], 3
push 4
mov byte [ebp - 0x15], 0
call fcn.10013ee8
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 2
call fcn.10013ee8
xor edx, edx
mov byte [ebp - 4], 3
mov dword [ebp - 0x14], edx
jmp 0x10071448
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc0]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10071439
mov dword [ebp - 0x14], edx
jmp 0x10071466
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10071453
mov eax, dword [ebp - 0x10]
mov ecx, 0xe3cf9575
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
add eax, 0x39f7747
cmp ecx, eax
sbb eax, eax
neg eax
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jne 0x1007149c
cmp dword [ebp - 0x10], edx
jne 0x1007149c
mov ecx, edx
jmp 0x1007149f
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
imul eax, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], 0xfffffff0
cmp dword [ebp - 0x1c], 0xffffffef
jge 0x10071676
push 0xfffffffffffffffd
pop esi
mov edi, 0xffff
mov dword [ebp - 0x2c], 0xfff6
lea ecx, [ebp - 0xcc]
push 1
call fcn.10013ee8
mov byte [ebp - 4], 4
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x14], 0
jmp 0x10071501
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xcc]
mov dword [eax + ecx*4], 0xe1c2a91
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x100714ee
mov dword [ebp - 0x10], 0xffffffe2
jmp 0x10071649
mov dword [ebp - 0x14], 5
lea ecx, [ebp - 0xa0]
push 4
call fcn.10013ee8
mov dword [ebp - 0x24], 0
jmp 0x10071543
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x10071530
mov eax, dword [ebp - 0x10]
cmp edi, eax
sbb eax, eax
neg eax
cmp eax, edi
mov eax, dword [ebp - 0x2c]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
setne dl
add edx, dword [ebp - 0x14]
neg edx
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
neg edx
sbb edx, edx
sub eax, 8
inc edx
cmp eax, edx
je 0x100715cc
mov dword [ebp - 0x2c], 0
jmp 0x100715be
mov byte [ebp - 0x1d], 0
cmp byte [ebp - 0x1d], 0
je 0x100715a6
push 0x1e31
push 0x5c1
push 0xbfd
push 0xfa1
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov byte [ebp - 0x1d], 0
cmp byte [ebp - 0x1d], 0
je 0x100715bb
push 0x206
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0
jle 0x10071582
cmp dword [ebp - 0x14], 0
je 0x10071633
jmp 0x1007163b
mov dword [ebp - 0x30], 0x20be
xor edx, edx
mov dword [ebp - 0x3c], 0xfffffff6
mov dword [ebp - 0x24], 0xc894628a
mov dword [ebp - 0x30], 0xbf7d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
setge dl
add edx, 0x7ba6da08
je 0x10071616
cmp dword [ebp - 0x14], 0xd983a5c2
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x14]
jl 0x10071616
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp - 0xac]
dec dword [eax]
lea ecx, [ebp - 0xa0]
call fcn.100144eb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x11
je 0x10071513
mov dword [ebp - 0x7c], 0
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 3
call fcn.100144eb
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffef
jl 0x100714c1
lea ecx, [ebp - 0xac]
call fcn.100144eb
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 1
call fcn.100144eb
lea eax, [ebp - 0x38]
push eax
push 0xf90b
push 0x10707
call fcn.100290d8
pop ecx
pop ecx
call eax
push eax
push 0x2e45
push 0x7165
call fcn.100290d8
pop ecx
pop ecx
call eax
mov esi, eax
mov dword [ebp - 0x30], esi
test esi, esi
je 0x10071942
xor edi, edi
cmp dword [ebp - 0x38], edi
jle 0x1007192e
cmp byte [ebp - 0x15], 0
jne 0x1007192e
push dword [esi + edi*4]
lea ecx, [ebp - 0x6c]
call fcn.10013e17
cmp byte [ebp - 0x25], 0
lea edx, [ebp - 0x6c]
mov byte [ebp - 4], 5
je 0x10071800
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x6c]
mov eax, dword [ebp - 0x5c]
cmovae ecx, dword [ebp - 0x6c]
cmovae edx, dword [ebp - 0x6c]
push edx
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x6c]
cmovae ecx, dword [ebp - 0x6c]
push eax
push ecx
lea ecx, [ebp - 0xb4]
call fcn.1007bea8
add esp, 0xc
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 8
lea ecx, [ebp - 0x6c]
cmovae eax, dword [ebp - 0x54]
push dword [ebp - 0x44]
push 0
push eax
call fcn.10046a42
cmp eax, 0xffffffff
je 0x10071914
mov byte [ebp - 0x15], 1
test ebx, ebx
je 0x10071914
push dword [ebp - 0x84]
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
push 0
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x6c]
push eax
call fcn.10046a42
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
je 0x100717d5
push dword [esi + edi*4]
lea ecx, [ebp - 0xe4]
call fcn.10013e17
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x3c]
push 0xffffffffffffffff
push ecx
lea ecx, [ebp - 0x114]
push ecx
mov ecx, eax
call fcn.100360b1
push eax
mov ecx, ebx
call fcn.10019dfc
push 0
push 1
lea ecx, [ebp - 0x114]
call fcn.10014448
lea ecx, [ebp - 0xe4]
push 0
push 1
call fcn.10014448
jmp 0x10071914
mov eax, dword [ebp - 0x38]
dec eax
cmp edi, eax
jge 0x10071914
push dword [esi + edi*4 + 4]
lea ecx, [ebp - 0x174]
call fcn.10013e17
push eax
mov ecx, ebx
call fcn.10019dfc
lea ecx, [ebp - 0x174]
jmp 0x100717c7
lea ecx, [ebp - 0x54]
call fcn.1002959c
test al, al
je 0x10071843
mov byte [ebp - 0x15], 1
test ebx, ebx
je 0x10071914
mov eax, dword [ebp - 0x38]
dec eax
cmp edi, eax
jge 0x10071914
push dword [esi + edi*4 + 4]
lea ecx, [ebp - 0x144]
call fcn.10013e17
push eax
mov ecx, ebx
call fcn.10019dfc
lea ecx, [ebp - 0x144]
jmp 0x100717c7
lea eax, [ebp - 0x94]
push eax
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0xfc]
call fcn.100383a6
pop ecx
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x10071864
mov eax, dword [eax]
push ecx
push 0
push eax
lea ecx, [ebp - 0x6c]
call fcn.10046a42
mov ebx, eax
lea ecx, [ebp - 0xfc]
push 0
neg ebx
push 1
sbb bl, bl
call fcn.10014448
inc bl
mov ebx, dword [ebp + 8]
je 0x10071914
mov byte [ebp - 0x15], 1
test ebx, ebx
je 0x10071914
lea eax, [ebp - 0x94]
push eax
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0x18c]
call fcn.100383a6
pop ecx
mov esi, eax
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 6
push dword [eax + edi*4]
call fcn.10013e17
push 0xffffffffffffffff
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x12c]
push dword [esi + 0x10]
push ecx
mov ecx, eax
call fcn.100360b1
push eax
mov ecx, ebx
call fcn.10019dfc
push 0
push 1
lea ecx, [ebp - 0x12c]
call fcn.10014448
push 0
push 1
lea ecx, [ebp - 0x15c]
call fcn.10014448
push 0
push 1
lea ecx, [ebp - 0x18c]
call fcn.10014448
mov esi, dword [ebp - 0x30]
push 0
push 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 1
call fcn.10014448
inc edi
cmp edi, dword [ebp - 0x38]
jl 0x100716d3
push esi
push 0xf90b
push 0x1b73b
call fcn.100290d8
pop ecx
pop ecx
call eax
push 0
push 1
lea ecx, [ebp - 0x94]
call fcn.10014448
push 0
push 1
lea ecx, [ebp - 0x54]
call fcn.10014448
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0x15]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret