Function at 0x536adc
Capabilities:
Get keyboard layout

Disassembly:
jmp 0x7696e0
push 0x110
mov eax, 0x7b4031
call fcn.0053ba0f
mov ebx, ecx
mov dword [ebp - 0x118], ebx
mov ecx, 0x25ae819
mov dword [ebp - 0x11c], ebx
call fcn.0053c469
push 0
mov ecx, ebx
call fcn.0053b474
xor eax, eax
mov dword [ebx], vtable.TMScene.0
mov dword [ebx + 0x24], eax
lea edi, [ebx + 0x5c]
mov dword [ebx + 0x28], eax
or ecx, 0xffffffff
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0xf4], eax
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xf0], eax
mov dword [ebx + 0x20114], eax
mov word [ebx + 0x20110], cx
mov dword [0xa65810], eax
mov dword [0x7fe9f0], 0x428c0000
mov dword [ebx + 0x20124], eax
mov dword [ebx + 0x20120], eax
mov dword [ebx + 0x2010c], eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x100], eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x20118], eax
mov dword [ebx + 0x2011c], eax
mov dword [0x80195c], 2
mov dword [ebx + 0x94], eax
push 0xa
mov dword [ebp - 4], eax
pop eax
mov ecx, eax
mov dword [ebp - 0x114], eax
xor eax, eax
xor edx, edx
rep stosd dword es:[edi], eax
push 2
mov dword [ebx + 0x84], edx
lea eax, [ebx + 0xe8]
mov dword [ebx + 0x88], edx
mov dword [ebx + 0x8c], edx
mov dword [ebx + 0x90], edx
mov dword [ebx + 0x26e8c], edx
mov dword [ebx + 0x26e90], edx
pop ecx
mov dword [eax - 8], edx
mov dword [eax], edx
lea eax, [eax + 4]
sub ecx, 1
jne 0x7697eb
mov edi, 0x154
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x769826
push edi
mov ecx, esi
call fcn.00538882
push ebx
mov ecx, esi
call fcn.0053d634
jmp 0x769828
xor eax, eax
push 0x24
pop edi
push edi
mov byte [ebp - 4], 0
mov dword [ebx + 0x28], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x76985c
push edi
mov ecx, esi
call fcn.005386f2
push 0
mov ecx, esi
call fcn.0053b474
jmp 0x76985e
xor eax, eax
push eax
mov ecx, ebx
mov byte [ebp - 4], 0
mov dword [ebx + 0x3c], eax
call fcn.0053b785
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 3
test esi, esi
je 0x769897
push edi
mov ecx, esi
call fcn.005386f2
push 0
mov ecx, esi
call fcn.0053b474
jmp 0x769899
xor eax, eax
push eax
mov ecx, ebx
mov byte [ebp - 4], 0
mov dword [ebx + 0x2c], eax
call fcn.0053b785
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 4
test esi, esi
je 0x7698d2
push edi
mov ecx, esi
call fcn.005386f2
push 0
mov ecx, esi
call fcn.0053b474
jmp 0x7698d4
xor eax, eax
push eax
mov ecx, ebx
mov byte [ebp - 4], 0
mov dword [ebx + 0x30], eax
call fcn.0053b785
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 5
test esi, esi
je 0x76990d
push edi
mov ecx, esi
call fcn.005386f2
push 0
mov ecx, esi
call fcn.0053b474
jmp 0x76990f
xor eax, eax
push eax
mov ecx, ebx
mov byte [ebp - 4], 0
mov dword [ebx + 0xdc], eax
call fcn.0053b785
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 6
test esi, esi
je 0x76994b
push edi
mov ecx, esi
call fcn.005386f2
push 0
mov ecx, esi
call fcn.0053b474
jmp 0x76994d
xor eax, eax
push eax
mov ecx, ebx
mov byte [ebp - 4], 0
mov dword [ebx + 0x34], eax
call fcn.0053b785
mov edi, 0xe70
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 7
test esi, esi
je 0x7699bf
push edi
mov ecx, esi
call fcn.0053a09c
push 1
push 1
push 0xaaff0000
push 1
sub esp, 0x10
mov ecx, esi
mov dword [esp + 0xc], 0x41a00000
mov dword [esp + 8], 0x44070000
mov dword [esp + 4], 0x428c0000
mov dword [esp], 0x42f00000
push 0xffffffffffffffff
push 0x7c63e8
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x7699c1
xor eax, eax
mov dword [ebx + 0x100], eax
and dword [eax + 0x3c], 0
mov ecx, dword [ebx + 0x100]
push 0
mov byte [ebp - 4], 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov edi, 0x200
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 8
test esi, esi
je 0x769a35
push edi
mov ecx, esi
call fcn.0053c5ef
push 0x7d0
sub esp, 0x10
mov ecx, esi
mov dword [esp + 0xc], 0x41c00000
mov dword [esp + 8], 0x43f00000
mov dword [esp + 4], 0x42a00000
mov dword [esp], 0x43200000
push str.Message_Panel
call fcn.0053c144
jmp 0x769a37
xor eax, eax
mov edi, 0x21c
mov byte [ebp - 4], 0
push edi
mov dword [ebx + 0xfc], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 9
test esi, esi
je 0x769af8
push edi
mov ecx, esi
call fcn.00539cdc
mov ecx, dword [0xa69074]
push ecx
push ecx
mov eax, dword [ecx + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
mov eax, dword [ecx + 0xa8]
mov ecx, esi
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c66e8]
mulss xmm0, dword [0x7bd180]
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe19c]
subss xmm0, dword [0x7bed5c]
mulss xmm0, dword [0x7bd180]
movss dword [esp], xmm0
push 0
push str.Message_Box
call fcn.0053b032
jmp 0x769afa
xor eax, eax
push edi
mov byte [ebp - 4], 0
mov dword [ebx + 0x104], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0xa
test esi, esi
je 0x769bb6
push edi
mov ecx, esi
call fcn.00539cdc
mov ecx, dword [0xa69074]
push ecx
push ecx
mov eax, dword [ecx + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
mov eax, dword [ecx + 0xa8]
mov ecx, esi
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c66e8]
mulss xmm0, dword [0x7bd180]
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe19c]
subss xmm0, dword [0x7bed5c]
mulss xmm0, dword [0x7bd180]
movss dword [esp], xmm0
push 4
push str.Message_Box
call fcn.0053b032
jmp 0x769bb8
xor eax, eax
mov byte [ebp - 4], 0
lea edi, [ebx + 0x5c]
mov dword [ebx + 0x108], eax
xor esi, esi
push 0xe70
call fcn.00537b1c
pop ecx
mov dword [ebp - 0x118], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x769c9c
push 0xe70
mov ecx, eax
call fcn.0053a09c
mov ecx, dword [0xa69074]
push 0
push 1
push 0x9955aa55
mov eax, dword [ecx + 0xac]
push 1
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43330000
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
mov eax, dword [ecx + 0xa8]
mov ecx, dword [ebp - 0x118]
cvtpd2ps xmm1, xmm0
movd xmm0, esi
divss xmm1, dword [0x7fe1a0]
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x7c66ec]
addss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [esp + 4], xmm1
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe19c]
subss xmm0, dword [0x7c1994]
movss dword [esp], xmm0
push 0xffffffffffffffff
push 0x7bdec4
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x769c9e
xor eax, eax
mov dword [edi], eax
add esi, 0x10
add edi, 4
mov byte [ebp - 4], 0
cmp esi, 0xa0
jl 0x769bc7
mov edi, 0xe70
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0xc
test esi, esi
je 0x769d47
push edi
mov ecx, esi
call fcn.0053a09c
mov eax, dword [0xa69074]
mov ecx, esi
push 0
push 1
push 0xaa55aa55
mov eax, dword [eax + 0xac]
push 1
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c5bac]
movss dword [esp + 4], xmm0
and dword [esp], 0
push 0xffffffffffffffff
push 0x7bdec4
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x769d49
xor eax, eax
push edi
mov byte [ebp - 4], 0
mov dword [ebx + 0x84], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0xd
test esi, esi
je 0x769ddf
push edi
mov ecx, esi
call fcn.0053a09c
mov eax, dword [0xa69074]
mov ecx, esi
push 0
push 1
push 0xaa55aa55
mov eax, dword [eax + 0xac]
push 1
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c5bac]
movss dword [esp + 4], xmm0
and dword [esp], 0
push 0xffffffffffffffff
push 0x7bdec4
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x769de1
xor eax, eax
push edi
mov byte [ebp - 4], 0
mov dword [ebx + 0x8c], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0xe
test esi, esi
je 0x769e7a
push edi
mov ecx, esi
call fcn.0053a09c
mov eax, dword [0xa69074]
mov ecx, esi
push 0
push 1
push 0xaa55aa55
mov eax, dword [eax + 0xac]
push 0
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c5bac]
movss dword [esp + 4], xmm0
and dword [esp], 0
push 0xffffff00
push 0x7bdec4
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x769e7c
xor eax, eax
push edi
mov byte [ebp - 4], 0
mov dword [ebx + 0x88], eax
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0xf
test esi, esi
je 0x769f15
push edi
mov ecx, esi
call fcn.0053a09c
mov eax, dword [0xa69074]
mov ecx, esi
push 0
push 1
push 0xaa55aa55
mov eax, dword [eax + 0xac]
push 0
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x7fe1a0]
subss xmm0, dword [0x7c5bac]
movss dword [esp + 4], xmm0
and dword [esp], 0
push 0xffffff00
push 0x7bdec4
push 0xfffffffffffffffe
call fcn.00539089
jmp 0x769f17
xor eax, eax
mov ecx, dword [ebx + 0x84]
mov dword [ebx + 0x90], eax
push 0
mov byte [ebp - 4], 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x8c]
xor edi, edi
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x88]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x90]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0xfc]
push 1
push edi
mov eax, dword [ecx]
call dword [eax + 0x88]
mov ecx, dword [ebx + 0x104]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x108]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x104]
mov esi, dword [ebx + 0x28]
mov eax, dword [ecx]
test esi, esi
je 0x769f97
mov edx, dword [eax + 0x50]
lea eax, [esi + 0x24]
push eax
call edx
jmp 0x769f9b
push edi
call dword [eax + 0x50]
mov ecx, dword [ebx + 0x108]
mov esi, dword [ebx + 0x28]
mov eax, dword [ecx]
test esi, esi
je 0x769fb5
mov edx, dword [eax + 0x50]
lea eax, [esi + 0x24]
push eax
call edx
jmp 0x769fb9
push edi
call dword [eax + 0x50]
mov eax, dword [ebx + 0x104]
xor ecx, ecx
inc ecx
mov dword [eax + 0x60], ecx
mov eax, dword [ebx + 0x108]
mov dword [eax + 0x60], ecx
mov eax, dword [ebx + 0xfc]
and dword [eax + 0x3c], edi
mov ecx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x104]
mov dword [ecx + 0x134], eax
mov ecx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x108]
mov dword [ecx + 0x144], eax
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0xfc]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x104]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x108]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x100]
mov eax, dword [ecx]
call dword [eax + 0x44]
lea esi, [ebx + 0x5c]
xor edi, edi
mov ecx, dword [esi]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x28]
push dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x44]
sub dword [ebp - 0x114], 1
lea esi, [esi + 4]
jne 0x76a032
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x88]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x90]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x84]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x8c]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov eax, dword [0xa69074]
mov edi, 0xe70
push edi
mov eax, dword [eax + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [0x7bed48]
movss dword [ebp - 0x114], xmm0
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0x10
test esi, esi
je 0x76a123
push edi
mov ecx, esi
call fcn.0053a09c
movss xmm0, dword [ebp - 0x114]
mov ecx, esi
push 0
push 1
push 0xaa000077
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x41e00000
movss dword [esp + 4], xmm0
and dword [esp], 0
push 0xffffffffffffffdd
push 0x7be88c
push 0xfffffffffffffffe
call fcn.00539089
mov ecx, eax
jmp 0x76a125
xor ecx, ecx
mov dword [ebx + 0x98], ecx
mov eax, dword [ecx]
push 0
mov byte [ebp - 4], 0
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x44]
push edi
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x118], esi
mov byte [ebp - 4], 0x11
test esi, esi
je 0x76a1aa
push edi
mov ecx, esi
call fcn.0053a09c
movss xmm0, dword [ebp - 0x114]
mov ecx, esi
push 0
push 1
push 0xaa000077
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43340000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
push 0xffffffffffffffdd
push str.IME_Desc
push 0xfffffffffffffffe
call fcn.00539089
mov ecx, eax
jmp 0x76a1ac
xor ecx, ecx
mov dword [ebx + 0x94], ecx
mov eax, dword [ecx]
push 0
mov byte [ebp - 4], 0
call dword [eax + 0x60]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x94]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0xa69060]
mov esi, 0x100
test ecx, ecx
je 0x76a2ca
call fcn.00537897
mov ecx, dword [ebx + 0x98]
lea edx, [ebp - 0x114]
xor edi, edi
push edi
push edx
test eax, eax
je 0x76a2aa
mov ax, word [0x7be88c]
mov word [ebp - 0x114], ax
mov al, byte [0x7be88e]
mov byte [ebp - 0x112], al
mov eax, dword [ecx]
call dword [eax + 0x80]
push esi
lea eax, [ebp - 0x110]
push edi
push eax
call fcn.00538b89
add esp, 0xc
lea eax, [ebp - 0x110]
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
call fcn.00539719
mov ecx, dword [ebx + 0x94]
lea edx, [ebp - 0x110]
push edi
push edx
mov eax, dword [ecx]
call dword [eax + 0x80]
lea esi, [ebp - 0x110]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x76a260
sub esi, ecx
mov ecx, dword [ebx + 0x94]
mov eax, esi
shl eax, 3
push ecx
mov edx, dword [ecx]
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 4], 0x41800000
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x7bed40]
movss dword [esp], xmm0
call dword [edx + 0x74]
jmp 0x76a2ca
mov ax, word [0x7c641c]
mov word [ebp - 0x114], ax
mov al, byte [0x7c641e]
mov byte [ebp - 0x112], al
mov eax, dword [ecx]
call dword [eax + 0x80]
mov edi, 0x10000
lea esi, [ebx + 0x10c]
push edi
push 0
push esi
call fcn.00538b89
push edi
lea eax, [ebx + 0x1010c]
push 0
push eax
call fcn.00538b89
push 0x100
push esi
call fcn.00537469
add esp, 0x20
lea edi, [ebx + 0x9c]
xor eax, eax
push 0x10
pop ecx
rep stosd dword es:[edi], eax
mov eax, ebx
call fcn.0053d6cf
ret