Function at 0x763053f6
Capabilities:
Get keyboard layout

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword [ebp + 0x1c], 0
push esi
push edi
mov eax, 0x80
jne 0x7630514c
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
ja 0x76305025
je 0x7630501a
mov eax, ecx
dec eax
je 0x76304ff2
dec eax
je 0x76304fcf
dec eax
dec eax
je 0x76304fac
sub eax, 4
je 0x76304f6d
sub eax, 8
je 0x76304f4a
sub eax, 0x10
jne 0x7630509d
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76304f39
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x24]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x24]
cmp eax, ecx
jbe 0x76304f45
mov eax, ecx
mov esi, dword [edx + 0x28]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76304f5c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x1c]
cmp eax, ecx
jbe 0x76304f68
mov eax, ecx
mov esi, dword [edx + 0x20]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76304f81
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x2c]
shl eax, 1
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x2c]
shl ecx, 1
cmp eax, ecx
jbe 0x76304f8f
mov eax, ecx
mov esi, dword [edx + 0x30]
mov edi, dword [ebp + 0x14]
add esi, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x7630547f
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76304fbe
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
cmp eax, ecx
jbe 0x76304fca
mov eax, ecx
mov esi, dword [edx + 0x10]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76304fe1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x76304fed
mov eax, ecx
mov esi, dword [edx + 8]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76305004
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
jmp 0x76304f7a
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
shl ecx, 1
cmp eax, ecx
jbe 0x76305012
mov eax, ecx
mov esi, dword [edx + 0x18]
jmp 0x76304f92
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x34]
jmp 0x7630547f
cmp ecx, 0x100
je 0x76305141
cmp ecx, 0x200
je 0x76305119
cmp ecx, 0x400
je 0x763050f3
cmp ecx, 0x800
je 0x763050cb
cmp ecx, 0x1000
je 0x763050a5
cmp ecx, 0x8000
jne 0x7630509d
push dword [ebp + 8]
call sym.IMM32.dll_CtfImmIsGuidMapEnable
test eax, eax
je 0x7630509d
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5c], 0x10
jb 0x7630509d
mov edx, dword [eax + 0x60]
add edx, eax
je 0x7630509d
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x7630508c
mov eax, dword [edx + 8]
jmp 0x7630547f
mov ecx, dword [edx + 8]
cmp eax, ecx
jbe 0x76305095
mov eax, ecx
mov esi, dword [edx + 0xc]
jmp 0x76304f92
push 0xfffffffffffffffe
pop eax
jmp 0x7630547f
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x763050b7
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x4c]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
cmp eax, ecx
jbe 0x763050c3
mov eax, ecx
mov esi, dword [edx + 0x50]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x763050dd
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x54]
jmp 0x76304f7a
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x54]
shl ecx, 1
cmp eax, ecx
jbe 0x763050eb
mov eax, ecx
mov esi, dword [edx + 0x58]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x76305105
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x3c]
jmp 0x7630547f
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x3c]
cmp eax, ecx
jbe 0x76305111
mov eax, ecx
mov esi, dword [edx + 0x40]
jmp 0x76304f92
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x7630512b
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x44]
jmp 0x76304f7a
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x44]
shl ecx, 1
cmp eax, ecx
jbe 0x76305139
mov eax, ecx
mov esi, dword [edx + 0x48]
jmp 0x76304f92
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x38]
jmp 0x7630547f
mov esi, dword [ebp + 0x10]
cmp esi, eax
mov ecx, dword [ebp + 0xc]
push ebx
push 8
mov edi, 0x1000
mov edx, 0x400
pop ebx
ja 0x763051c7
je 0x76305464
mov eax, esi
dec eax
je 0x763053f3
dec eax
je 0x76305204
dec eax
dec eax
je 0x76305190
sub eax, 4
je 0x763053f3
sub eax, ebx
je 0x76305204
sub eax, 0x10
jne 0x763051fc
cmp esi, 4
mov eax, dword [ebp + 0xc]
je 0x76305382
cmp esi, 0x20
je 0x76305373
cmp esi, edx
je 0x76305364
cmp esi, edi
jne 0x76305391
mov edi, dword [eax + 0x58]
mov esi, dword [eax + 0x50]
add edi, eax
add esi, eax
mov eax, dword [eax + 0x4c]
jmp 0x76305397
mov eax, 0x100
cmp esi, eax
je 0x7630545f
cmp esi, 0x200
je 0x763053f3
cmp esi, edx
je 0x76305190
cmp esi, 0x800
je 0x763053f3
cmp esi, edi
je 0x76305190
cmp esi, 0x8000
je 0x76305204
push 0xfffffffffffffffe
pop esi
jmp 0x7630547c
mov edi, dword [ebp + 0xc]
dec esi
dec esi
je 0x76305257
sub esi, 0xe
je 0x7630524d
sub esi, 0x7ff0
jne 0x7630526b
push dword [ebp + 8]
call sym.IMM32.dll_CtfImmIsGuidMapEnable
test eax, eax
je 0x763052e6
cmp dword [edi + 0x5c], 0x10
jb 0x763052e6
mov eax, dword [edi + 0x60]
add eax, edi
je 0x763052e6
mov esi, dword [eax + 0xc]
add esi, eax
mov eax, dword [eax + 8]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], ebx
jmp 0x7630526e
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x1c]
add esi, edi
jmp 0x76305245
mov esi, dword [edi + 8]
mov eax, dword [edi + 4]
add esi, edi
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], 1
jmp 0x7630526e
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0
jne 0x7630527b
xor eax, eax
jmp 0x7630547e
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push 0
push 0
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.76304ed3
mov ebx, eax
cmp ebx, 0xfffffffe
je 0x763052e6
cmp dword [ebp + 0x18], 0
je 0x7630535b
test ebx, ebx
je 0x7630535b
lea eax, [ebx + 2]
push eax
push 8
call fcn.76309949
test eax, eax
mov dword [ebp - 4], eax
je 0x763052e6
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push ebx
push eax
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.76304ed3
cmp eax, 0xfffffffe
jne 0x763052ee
push dword [ebp - 4]
push 0
push dword [0x76316888]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0xfffffffffffffffe
pop eax
jmp 0x7630547e
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 0x14]
jmp 0x76305333
inc ebx
inc ebx
cmp dword [ebp + 0x18], 0
je 0x76305340
mov eax, dword [ebp + 0xc]
dec dword [ebp + 0xc]
test eax, eax
je 0x76305340
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x20]
call fcn.76303868
cmp eax, 2
jne 0x7630532a
cmp dword [ebp + 0xc], 0
je 0x7630532a
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
dec dword [ebp + 0xc]
jmp 0x7630532f
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
dec dword [ebp + 0x18]
xor eax, eax
mov ax, word [ebx]
test ax, ax
mov dword [ebp - 8], eax
jne 0x763052f6
sub edi, dword [ebp + 0x14]
push dword [ebp - 4]
mov esi, edi
push 0
push dword [0x76316888]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x7630547c
mov eax, ebx
shr eax, 1
jmp 0x7630547e
mov edi, dword [eax + 0x48]
mov esi, dword [eax + 0x40]
add edi, eax
add esi, eax
mov eax, dword [eax + 0x3c]
jmp 0x76305397
mov edi, dword [eax + 0x30]
mov esi, dword [eax + 0x28]
add edi, eax
add esi, eax
mov eax, dword [eax + 0x24]
jmp 0x76305397
mov edi, dword [eax + 0x18]
mov esi, dword [eax + 0x10]
add edi, eax
add esi, eax
mov eax, dword [eax + 0xc]
jmp 0x76305397
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x7630547a
test eax, eax
jl 0x7630547a
mov ebx, dword [ebp + 0x14]
and dword [ebp + 0xc], 0
shr ecx, 2
mov dword [ebp + 0x14], eax
shr dword [ebp + 0x14], 2
mov dword [ebp + 0x18], ecx
je 0x763053e8
cmp dword [ebp + 0x18], 0
je 0x763053e8
push dword [ebp + 0x20]
mov eax, dword [esi]
push edi
push eax
call fcn.76303e0e
mov dword [ebx], eax
add ebx, 4
add esi, 4
dec dword [ebp + 0x18]
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x14]
jb 0x763053c0
mov esi, dword [ebp + 0xc]
shl esi, 2
jmp 0x7630547c
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push 0
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.763055ca
mov ebx, eax
lea eax, [ebx + 1]
push eax
push 8
call fcn.76309949
mov edi, eax
test edi, edi
je 0x763052e6
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push ebx
push edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.763055ca
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x76305439
push dword [ebp + 0x18]
sub eax, ecx
push dword [ebp + 0x14]
push eax
push edi
push 1
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
shl esi, 1
push edi
jmp 0x76305348
mov esi, dword [ecx + 0x38]
jmp 0x76305467
mov esi, dword [ecx + 0x34]
test esi, esi
jle 0x7630547c
push dword [ebp + 0x20]
mov eax, dword [ecx + 0x30]
add eax, ecx
push eax
push esi
call fcn.76303e0e
mov esi, eax
mov eax, esi
pop ebx
pop edi
pop esi
leave
ret 0x1c