Function at 0x46cc0c
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
push edi
xor esi, esi
mov edi, ecx
inc esi
xor ebx, ebx
push esi
push edi
push esi
push 0x13d8
push esi
push 0x26f7
mov dword [ebp - 0x38], ebx
call fcn.0045df72
mov dword [ebp - 0xc], 0xb57fd546
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], 0xabc106ec
add esp, 0x18
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], 0x1ad7ba96
mov dword [ebp - 0x24], 0x2d14b432
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x28], ebx
push 2
call fcn.00433ba3
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x10], ebx
jmp 0x46cc88
push dword [ebp - 0x10]
lea ecx, [ebp - 0x4c]
call fcn.00433c91
mov dword [eax], 4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x46cc74
mov dword [ebp - 0xc], 0x15
cmp dword [ebp - 0xc], 7
jl 0x46cdd4
push ebx
lea ecx, [ebp - 0x4c]
call fcn.00433c91
mov ebx, eax
push esi
lea ecx, [ebp - 0x58]
call fcn.00433ba3
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x30], 0x425f5f99
mov dword [ebp - 0x2c], 0x24770669
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x10], 0x50dfa014
mov dword [ebp - 8], 0x3446b7d8
mov dword [ebp - 0x38], 0x248c3319
mov dword [ebp - 0x10], 0
jmp 0x46ccfe
push dword [ebp - 0x10]
call fcn.00433c91
mov dword [eax], 0xbd7b1c2a
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x58]
cmp dword [ebp - 0x10], esi
jl 0x46cced
push 0
call fcn.00433c91
mov esi, eax
xor edx, edx
mov dword [esi], edx
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], edx
je 0x46cd3b
cmp dword [ebp - 0x14], edx
je 0x46cd3b
inc edx
dec dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 0x28]
sub edx, eax
mov eax, dword [ebp - 8]
cmp eax, edx
setge cl
xor edx, edx
mov dword [ebp - 0x10], ecx
imul ecx, dword [ebp - 0x10], 0x539
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setle dl
xor ecx, ecx
sub edx, 0xff7a
cmp edx, eax
mov eax, dword [ebp - 0x34]
setg cl
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, dword [esi]
mov eax, dword [ebp - 0x38]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setle cl
inc dword [ebp - 0x18]
cmp eax, ecx
jl 0x46cd9b
xor eax, eax
inc eax
jmp 0x46cd9d
xor eax, eax
cmp eax, dword [esi]
jne 0x46cdae
cmp dword [ebp - 0xc], 0
jne 0x46cdae
xor esi, esi
xor ecx, ecx
inc esi
jmp 0x46cdb3
xor esi, esi
inc esi
mov ecx, esi
xor eax, eax
cmp ecx, dword [ebx]
lea ecx, [ebp - 0x58]
sete al
mov dword [ebp - 8], eax
call fcn.00433c75
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 7
jge 0x46ccaa
xor ebx, ebx
mov dword [ebp - 8], ebx
jmp 0x46ce36
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x34], esi
push dword [ebp - 8]
call fcn.00433c91
cmp dword [eax], 0x672fee61
jge 0x46ce15
push dword [ebp - 8]
lea ecx, [ebp - 0x4c]
call fcn.00433c91
xor ecx, ecx
cmp dword [eax], esi
sete cl
cmp ecx, esi
jge 0x46ce0c
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], esi
inc dword [ebp - 8]
lea ecx, [ebp - 0x4c]
cmp dword [ebp - 8], esi
jle 0x46cdd9
call fcn.00433c75
push edi
call fcn.0042f65e
mov dword [ebp - 0xc], 0xec2e0cf5
mov esi, eax
pop ecx
mov dword [ebp - 0x10], ebx
jmp 0x46ce66
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x40], 6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x46ce58
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x46ce80
push 0x35f
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [ebp - 0xc], ebx
jmp 0x46cf3c
mov dword [ebp - 8], 0xfffffffd
mov dword [ebp - 8], 0xfffffff9
cmp dword [ebp - 8], 0x19
jg 0x46cf39
xor edi, edi
inc edi
mov dword [ebp - 0x10], 0x23afc371
mov dword [ebp - 0x38], 0xa258
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x10], ebx
jmp 0x46cf26
mov dword [ebp - 0x28], 0x1de9829c
mov ecx, 0xb16aac89
mov eax, dword [ebp - 0xc]
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x7a14
mov eax, dword [ebp - 8]
setge cl
xor edx, edx
cmp ecx, edi
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setle cl
xor edx, edx
cmp ecx, 0xffffffff
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
add ecx, dword [ebp - 8]
je 0x46cf05
cmp dword [ebp - 0xc], ebx
jne 0x46cf08
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x34], eax
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff3
jg 0x46ceb9
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x19
jle 0x46cea3
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffec
je 0x46ce88
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret