Function at 0x462a40
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4cc232
mov eax, dword fs:[0]
push eax
sub esp, 0x604
mov eax, dword [0x50a4c0]
xor eax, esp
mov dword [esp + 0x600], eax
push ebx
push esi
mov eax, dword [0x50a4c0]
xor eax, esp
push eax
lea eax, [esp + 0x610]
mov dword fs:[0], eax
mov eax, dword [esp + 0x620]
xor ebx, ebx
mov dword [esp + 0x20], eax
mov byte [esp + 0x10], bl
mov dword [esp + 0xc], ebx
mov dword [esp + 0x618], ebx
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], vtable.t_reg.0
call fcn.00430920
mov eax, str.MACHINE
lea edx, [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], reloc.OLEAUT32.dll_SysReAllocString
call fcn.00430b00
push str.SYSTEMCurrentControlSetControlKeyboard_Layouts
lea ecx, [esp + 0x280]
call fcn.00430a60
lea ecx, [esp + 0x154]
call fcn.00430920
mov byte [esp + 0x618], 3
lea eax, [esp + 0x288]
cmp byte [esp + 0x398], bl
jne 0x462afc
mov eax, dword [esp + 0x284]
push 1
push ebx
push ebx
add eax, 4
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x38]
call fcn.00431bf0
test al, al
jne 0x462bb0
mov esi, vtable.t_str.0
mov dword [esp + 0x154], esi
cmp byte [esp + 0x270], bl
jne 0x462b4a
mov eax, dword [esp + 0x15c]
lea edx, [esp + 0x160]
cmp eax, edx
je 0x462b4a
push eax
call fcn.004a4a7f
add esp, 4
mov dword [esp + 0x27c], esi
cmp byte [esp + 0x398], bl
jne 0x462b75
mov eax, dword [esp + 0x284]
lea ecx, [esp + 0x288]
cmp eax, ecx
je 0x462b75
push eax
call fcn.004a4a7f
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], vtable.t_reg.0
cmp eax, ebx
je 0x462b8c
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
cmp byte [esp + 0x14c], bl
jne 0x462e81
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x3c]
cmp eax, edx
jmp 0x462e76
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], ebx
call fcn.00432160
test al, al
jne 0x462c33
mov esi, vtable.t_str.0
mov dword [esp + 0x154], esi
cmp byte [esp + 0x270], bl
jne 0x462bfa
mov eax, dword [esp + 0x15c]
lea ecx, [esp + 0x160]
cmp eax, ecx
je 0x462bfa
push eax
call fcn.004a4a7f
add esp, 4
mov dword [esp + 0x27c], esi
cmp byte [esp + 0x398], bl
jne 0x462c25
mov eax, dword [esp + 0x284]
lea edx, [esp + 0x288]
cmp eax, edx
je 0x462c25
push eax
call fcn.004a4a7f
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00431ba0
jmp 0x462e81
xor esi, esi
cmp dword [esp + 0x14], ebx
jbe 0x462de9
nop
push esi
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x2c]
call fcn.00432280
test al, al
je 0x462de9
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x160]
cmp byte [esp + 0x270], bl
jne 0x462c79
mov eax, dword [esp + 0x15c]
push 0x10
lea ecx, [esp + 0x1c]
push ecx
add eax, 4
push eax
call fcn.004aa75d
mov edx, eax
and edx, 0xf0000000
add esp, 0xc
cmp edx, 0xe0000000
je 0x462dde
cmp eax, dword [esp + 0x624]
jne 0x462dde
lea ecx, [esp + 0x3b0]
mov dword [esp + method.t_reg.virtual_0], vtable.t_reg.0
call fcn.00430920
mov eax, str.MACHINE
lea edx, [esp + 0x3b0]
mov dword [esp + 0x3a8], ebx
mov dword [esp + 0x3ac], reloc.OLEAUT32.dll_SysReAllocString
call fcn.00430b00
lea eax, [esp + 0x27c]
push eax
lea ecx, [esp + 0x4d8]
call fcn.004309d0
push 0x4f0024
lea eax, [esp + 0x4d8]
mov byte [esp + 0x61c], 6
call fcn.00430c80
lea eax, [esp + 0x160]
cmp byte [esp + 0x270], bl
jne 0x462d2b
mov eax, dword [esp + 0x15c]
add eax, 4
push eax
lea eax, [esp + 0x4d8]
call fcn.00430c80
lea eax, [esp + 0x4e0]
cmp byte [esp + 0x5f0], bl
jne 0x462d52
mov eax, dword [esp + 0x4dc]
push 1
push ebx
push ebx
add eax, 4
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x3b8]
call fcn.00431bf0
test al, al
je 0x462dbe
xor eax, eax
mov dword [esp + 0x602], eax
mov dword [esp + 0x606], eax
push 1
xor edx, edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x608]
mov word [esp + 0x608], dx
push ecx
lea edx, [esp + 0x18]
push edx
mov eax, str.Layout_Id
lea ecx, [esp + 0x3b4]
mov dword [esp + 0x2c], 0xa
call fcn.00431db0
test al, al
jne 0x462eb2
lea ecx, [esp + 0x4d4]
call fcn.00430ad0
lea ecx, [esp + 0x3a4]
mov byte [esp + 0x618], 3
call fcn.00431ba0
inc esi
cmp esi, dword [esp + 0x14]
jb 0x462c40
mov esi, vtable.t_str.0
mov dword [esp + 0x154], esi
cmp byte [esp + 0x270], bl
jne 0x462e19
mov eax, dword [esp + 0x15c]
lea ecx, [esp + 0x160]
cmp eax, ecx
je 0x462e19
push eax
call fcn.004a4a7f
add esp, 4
mov dword [esp + 0x27c], esi
cmp byte [esp + 0x398], bl
jne 0x462e44
mov eax, dword [esp + 0x284]
lea edx, [esp + 0x288]
cmp eax, edx
je 0x462e44
push eax
call fcn.004a4a7f
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], vtable.t_reg.0
cmp eax, ebx
je 0x462e5b
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
cmp byte [esp + 0x14c], bl
jne 0x462e81
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x3c]
cmp eax, ecx
je 0x462e81
push eax
call fcn.004a4a7f
add esp, 4
lea ecx, [esp + 0xc]
call fcn.0042c930
xor al, al
mov ecx, dword [esp + 0x610]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x600]
xor ecx, esp
call fcn.004a4a25
add esp, 0x610
ret
push 0x10
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x608]
push ecx
call fcn.004aa75d
mov edx, dword [esp + 0x2c]
add esp, 0xc
lea ecx, [esp + 0x4d4]
mov word [edx], ax
call fcn.00430ad0
lea ecx, [esp + 0x3a4]
call fcn.00431ba0
lea ecx, [esp + 0x154]
call fcn.00430ad0
lea ecx, [esp + 0x27c]
call fcn.00430ad0
lea ecx, [esp + 0x24]
call fcn.00431ba0
lea ecx, [esp + 0xc]
call fcn.0042c930
mov al, 1
jmp 0x462e8c