Function at 0x430180
Capabilities:
Get keyboard layout
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1a184
call fcn.004cd440
xor eax, eax
mov byte [esp + 8], 0
push ebx
mov word [esp + 0x2170], ax
lea eax, [esp + 0xa178]
push esi
push edi
push dword [ebp + 8]
mov dword [esp + 0x14], eax
mov edi, ecx
mov ecx, dword [0x4fc590]
lea eax, [esp + 0x1218c]
mov dword [esp + 0x24], eax
dec ecx
xor eax, eax
mov dword [esp + 0x20], edi
push eax
mov word [esp + 0x6a], ax
mov word [esp + 0x70], ax
mov dword [esp + 0x74], eax
lea eax, [esp + 0xa188]
push ecx
push eax
mov dword [esp + 0x84], ecx
mov dword [edi + 0x24c], ecx
call fcn.004326e0
push 2
push 0x4e9088
push dword [esp + 0x18]
mov ebx, eax
mov dword [esp + 0x3c], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
add esp, 0xc
test eax, eax
sete byte [esp + 0x2f]
test eax, eax
jne 0x430228
mov eax, dword [esp + 0x10]
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov word [eax], cx
mov eax, dword [esp + 0x40]
mov dh, byte [esp + 0x15]
mov dl, byte [esp + 0x52]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xf]
mov byte [esp + 0x15], dh
mov dh, byte [esp + 0x16]
mov byte [esp + 0xf], al
mov eax, dword [esp + 0x40]
mov byte [esp + 0x16], dh
mov dh, byte [esp + 0x17]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x12188]
mov byte [esp + 0xe], dl
mov byte [esp + 0x17], dh
mov dword [esp + 0x24], esi
nop dword [eax]
nop word [eax + eax]
mov dword [esp + 0x84], eax
cmp ebx, 0xffffffff
je 0x432361
mov eax, dword [esp + 0x6c]
push 0xc
inc eax
mov dword [edi + 0x64c], 0
push str.CommentFlag
push ecx
mov dword [edi + 0x250], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4302dd
push dword [esp + 0x10]
mov ecx, edi
call fcn.00432a00
test eax, eax
je 0x43121b
xor esi, esi
mov byte [esp + 0x7c], 0
mov dword [esp + 0x18], esi
jmp 0x4302fa
mov ebx, dword [esp + 0x30]
jmp 0x4302fe
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x20]
push dword [ebp + 8]
inc dword [esp + 0x70]
push esi
push ecx
push edx
call fcn.004326e0
mov edi, eax
mov dword [esp + 0x44], edi
test edi, edi
je 0x4303c2
cmp edi, 0xffffffff
je 0x4303c2
test esi, esi
jne 0x4303c2
push 2
push 0x4e90ac
push dword [esp + 0x28]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
mov edx, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
jne 0x430398
cmp byte [esp + 0x2f], al
jne 0x43035c
cmp word [edx + 4], 0x3a
jne 0x43035c
cmp word [edx + 6], 0x3a
je 0x4303a3
lea eax, [edi*2 - 2]
mov byte [esp + 0x2f], 0
push eax
lea eax, [edx + 4]
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0x2c]
lea edx, [edi - 2]
add esp, 0xc
call fcn.0042abe0
mov edx, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x44], edi
cmp word [edx], 0
je 0x4302fe
jmp 0x4303a3
cmp byte [esp + 0x2f], 0
jne 0x4302fe
push 2
push 0x4e9088
push edx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x4303c2
mov byte [esp + 0x2f], 1
jmp 0x4302fa
cmp byte [esp + 0x2f], 0
je 0x4303d7
cmp edi, 0xffffffff
je 0x430b62
jmp 0x4302fa
test esi, esi
jne 0x430922
mov edx, dword [esp + 0x20]
cmp edi, 0xffffffff
je 0x430600
cmp word [edx], 0x28
jne 0x430600
cmp word [edx + 2], 0x3a
lea esi, [edx + 2]
je 0x430600
cmp word [edx + edi*2 - 2], 0x3a
je 0x430600
mov al, byte [0x4fba8a]
mov dword [esp + 0x18], 1
mov dword [esp + 0x78], 0
mov byte [esp + 0x4e], al
mov byte [esp + 0x4d], 1
mov byte [esp + 0x4f], 0
mov byte [esp + 0x50], 0
mov byte [esp + 0x51], 1
mov dword [esp + 0x98], 0xa
mov dword [esp + 0x70], 1
movzx eax, word [esi]
cmp eax, 0x20
je 0x43045d
cmp eax, 9
jne 0x430462
add esi, 2
jmp 0x430450
test ax, ax
je 0x4305ee
nop dword [eax + eax]
mov ebx, esi
test esi, esi
je 0x4304b1
movzx eax, word [esi]
test ax, ax
je 0x4304b1
mov edi, eax
mov ecx, 0x4e6614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x4304c8
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x430490
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x430480
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4304b6
sub ecx, edx
sar ecx, 1
lea ebx, [esi + ecx*2]
movzx edi, word [ebx]
xor eax, eax
push 4
push str.Join
push esi
mov word [ebx], ax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x430539
push 0xf
lea eax, [esi + 8]
push eax
lea eax, [esp + 0xa0]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x98]
xor eax, eax
mov word [esp + 0xb6], ax
push 1
call fcn.004b3210
lea edx, [esp + 0x9c]
add esp, 4
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x430521
sub edx, ecx
sar edx, 1
mov dword [esp + 0x70], edx
jmp 0x4305c9
push 5
push 0x4e9154
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x43055a
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x4e]
jmp 0x4305c9
push 5
push str.RTrim
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x43057b
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x4d]
jmp 0x4305c9
movzx eax, word [esi]
test ax, ax
je 0x4305c9
mov ecx, eax
movzx eax, cx
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x430597.38
movzx eax, byte [eax + 0x432420]
jmp dword [eax*4 + 0x432408]
mov byte [esp + 0x4f], 1
jmp case.0x430597.38
mov byte [esp + 0x50], 1
jmp case.0x430597.38
mov byte [esp + 0x51], 0
jmp case.0x430597.38
mov dword [esp + 0x18], 2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x430585
mov word [ebx], di
mov esi, ebx
mov eax, edi
cmp ax, 0x20
je 0x4305dc
cmp ax, 9
jne 0x4305e5
movzx eax, word [esi + 2]
add esi, 2
jmp 0x4305d0
test ax, ax
jne 0x430470
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x7c], 1
jmp 0x4302fa
lea ebx, [edi + edi]
mov dword [esp + 0x48], ebx
cmp edi, 0xffffffff
je 0x430b62
xor esi, esi
mov dword [esp + 0x18], esi
test edi, edi
je 0x4302f0
cmp word [ebx + edx - 2], 0x3a
jne 0x430630
cmp word [edx], 0x2c
jne 0x430b62
movzx esi, word [edx]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test esi, 0xffffff80
je 0x430645
xor ecx, ecx
jmp 0x430653
push 2
push esi
call edi
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, eax
mov eax, esi
and eax, 0xffffffdf
test ecx, ecx
cmove eax, esi
cmp eax, 0x41
je 0x430865
cmp eax, 0x4f
je 0x4307f6
movzx eax, word [edx]
cmp eax, 0x3a
je 0x430686
cmp eax, 0x2b
je 0x430686
cmp eax, 0x2d
je 0x430686
lea edi, [edx + 2]
jmp 0x430693
cmp word [edx + 2], ax
lea edi, [edx + 2]
je 0x430b62
push eax
push str.____:.___
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x430b62
push 0x4e90f4
push dword [esp + 0x24]
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov ebx, eax
xor esi, esi
add esp, 8
mov dword [esp + 0x18], esi
test ebx, ebx
jne 0x4306d1
mov ebx, dword [esp + 0x48]
jmp 0x4308cc
mov eax, dword [esp + 0x20]
cmp word [eax], 0x3a
jne 0x430746
mov esi, edi
xor edx, edx
mov dword [esp + 0x18], edx
movzx eax, word [esi]
test ax, ax
je 0x430738
mov ecx, eax
mov dword [esp + 0x18], edx
cmp cx, 0x3a
je 0x430738
movzx eax, cx
test eax, 0xffffff80
jne 0x430714
push 0x107
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
test eax, eax
jne 0x43072a
movzx eax, word [esi]
push eax
push 0x4e90fc
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x430742
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x4306f1
cmp word [esi], 0x3a
je 0x430b62
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp word [ecx], 0x2c
jne 0x43079e
movzx eax, word [edi]
cmp eax, 0x20
je 0x43075d
cmp eax, 9
jne 0x430762
add edi, 2
jmp 0x430750
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
push 2
push 0x4e90f4
push edi
call ebx
add esp, 0xc
test eax, eax
je 0x430b62
push 3
lea eax, [edi - 2]
push 0x4e6604
push eax
call ebx
add esp, 0xc
test eax, eax
je 0x430b62
mov ebx, dword [esp + 0x48]
jmp 0x4308cc
mov eax, ecx
cmp ecx, ebx
jae 0x4307b1
cmp word [eax], 0x22
je 0x4307b9
add eax, 2
cmp eax, ebx
jb 0x4307a4
cmp eax, ebx
je 0x430b62
movzx eax, word [ebx + 4]
lea ecx, [ebx + 4]
test ax, ax
je 0x430b62
mov edx, eax
nop dword [eax + eax]
cmp dx, 0x22
je 0x4307e9
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4307d0
jmp 0x430b62
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x18], esi
jmp 0x4308cc
movzx eax, word [edx + 2]
mov esi, eax
test eax, 0xffffff80
je 0x430807
xor edx, edx
jmp 0x430811
push 2
push eax
call edi
add esp, 8
mov edx, eax
mov eax, esi
and eax, 0xffdf
test edx, edx
movzx ecx, ax
mov eax, esi
cmove ecx, eax
cmp cx, 0x52
jne 0x430b62
mov ecx, dword [esp + 0x20]
add ecx, 4
movzx eax, word [ecx]
cmp eax, 0x20
je 0x430844
cmp eax, 9
jne 0x430b62
xor esi, esi
mov dword [esp + 0x18], esi
nop word [eax + eax]
cmp ax, 0x20
je 0x43085c
cmp ax, 9
jne 0x4308b5
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x430850
push 3
push 0x4e90b4
push edx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x430b62
mov ecx, dword [esp + 0x20]
add ecx, 6
movzx eax, word [ecx]
cmp eax, 0x20
je 0x430896
cmp eax, 9
jne 0x430b62
xor esi, esi
mov dword [esp + 0x18], esi
nop dword [eax]
cmp ax, 0x20
je 0x4308ac
cmp ax, 9
jne 0x4308b5
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x4308a0
push eax
push 0x4e90bc
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x430b62
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
lea eax, [edi + ecx]
cmp eax, 0x4000
jae 0x4321ba
mov edx, dword [esp + 0x20]
cmp word [edx], 0x2c
je 0x430902
mov eax, dword [esp + 0x10]
mov esi, 0x20
mov word [eax + ecx*2], si
inc ecx
mov esi, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
lea eax, [ebx + 2]
mov ebx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x14]
push edx
lea eax, [eax + ebx*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
jmp 0x4302f6
cmp edi, 0xffffffff
je 0x432346
mov edx, dword [esp + 0x20]
cmp edi, 0xfffffffe
je 0x4302fe
mov edi, edx
cmp word [edi], 0x29
jne 0x4309ad
xor esi, esi
lea ecx, [edx + 2]
mov dword [esp + 0x18], esi
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x430950
sub edx, ecx
lea eax, [edi - 2]
sar edx, 1
lea eax, [eax + edx*2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x430972
cmp ecx, 9
jne 0x43097c
cmp eax, edi
je 0x43098f
sub eax, 2
dec edx
jmp 0x430965
xor ecx, ecx
add edi, 2
dec edx
mov word [eax + 2], cx
mov dword [esp + 0x44], edx
jmp 0x430add
cmp ecx, 0x20
je 0x430999
cmp ecx, 9
jne 0x4309a0
xor ecx, ecx
xor edx, edx
mov word [eax], cx
add edi, 2
dec edx
mov dword [esp + 0x44], edx
jmp 0x430add
cmp byte [esp + 0x4d], 0
mov esi, dword [esp + 0x20]
je 0x4309c9
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.0042ac50
mov dword [esp + 0x44], eax
jmp 0x4309cd
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x4e], 0
je 0x4309e1
mov edx, eax
mov ecx, esi
call fcn.0042abe0
mov dword [esp + 0x44], eax
xor esi, esi
cmp byte [esp + 0x4f], 0
je 0x430a21
mov ax, word [str.___F]
lea edx, [esp + 0x60]
mov ecx, dword [esp + 0x20]
push esi
push esi
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x70], ax
mov word [esp + 0x74], ax
mov word [esp + 0x76], ax
lea eax, [esp + 0x74]
push 1
push eax
call fcn.004b17d0
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x50], 0
je 0x430a68
mov ax, word [str.___F]
lea edx, [esp + 0x60]
mov cx, word [0x4fa34c]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x74], ax
lea eax, [esp + 0x74]
mov word [esp + 0x70], cx
mov word [esp + 0x76], cx
mov ecx, dword [esp + 0x30]
push 1
push eax
call fcn.004b17d0
add esp, 0x18
add esi, eax
cmp byte [esp + 0x51], 0
je 0x430aaf
mov ax, word [str.___F]
lea edx, [esp + 0x60]
mov cx, word [0x4fa350]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x74], ax
lea eax, [esp + 0x74]
mov word [esp + 0x70], cx
mov word [esp + 0x76], cx
mov ecx, dword [esp + 0x30]
push 1
push eax
call fcn.004b17d0
add esp, 0x18
add esi, eax
test esi, esi
je 0x430ad5
mov edx, dword [esp + 0x20]
lea ecx, [edx + 2]
nop word [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x430ac0
sub edx, ecx
sar edx, 1
mov dword [esp + 0x44], edx
jmp 0x430ad9
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + edx]
add eax, ebx
cmp eax, 0x4001
jae 0x43232e
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, 1
jle 0x430b35
test ecx, ecx
je 0x430b35
cmp edi, dword [esp + 0x20]
jne 0x430b35
lea eax, [ecx*2 + 2]
push eax
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x18]
lea eax, [eax + ebx*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x50]
add esp, 0xc
add ebx, dword [esp + 0x70]
mov dword [esp + 0x30], ebx
test edx, edx
je 0x4302fa
lea eax, [edx*2 + 2]
push eax
mov eax, dword [esp + 0x14]
push edi
lea eax, [eax + ebx*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esp + 0x44]
jmp 0x4302f6
mov word [ebx], di
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x431371
cmp word [esp + 0x2178], 0
mov ebx, dword [esp + 0x1c]
je 0x430d22
mov eax, dword [esp + 0x28]
mov esi, dword [ebx + 0x250]
mov dword [ebx + 0x250], eax
mov eax, dword [esp + 0x10]
cmp word [eax], 0x7b
je 0x430c01
cmp byte [esp + 0xe], 0
jne 0x430c01
cmp dword [esp + 0x3c], 0
jne 0x432202
cmp dword [ebx + 0x28], 0
je 0x430bc5
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
je 0x4321d5
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [esp + 0x2190]
mov ecx, ebx
push eax
call fcn.00434620
test eax, eax
je 0x43121b
xor eax, eax
mov dword [ebx + 0x64c], 0
mov word [esp + 0x2178], ax
jmp 0x430d1c
mov edi, dword [esp + 0x3c]
mov eax, edi
sub eax, 0
je 0x430c4e
sub eax, 1
je 0x430c2b
sub eax, 1
jne 0x430cb3
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
call fcn.0043cdc0
jmp 0x430c3a
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
call fcn.0043c660
test eax, eax
je 0x43121b
xor eax, eax
mov word [esp + 0x2178], ax
jmp 0x430cc1
mov eax, dword [0x4f90f4]
mov ecx, ebx
cmp dword [eax + 0xb4], 0
jne 0x43221f
lea eax, [esp + 0x238]
push eax
lea eax, [esp + 0x217c]
push eax
call fcn.0043bb90
test eax, eax
je 0x43121b
cmp byte [esp + 0xe], 0
je 0x430cb3
push 0
push 0
push 0
push 0x77
mov ecx, ebx
call fcn.00436ef0
test eax, eax
je 0x43121b
xor eax, eax
mov dword [ebx + 0x64c], 0
mov word [esp + 0x2178], ax
jmp 0x430d1c
xor eax, eax
mov word [esp + 0x2178], ax
test edi, edi
je 0x430d1c
cmp byte [esp + 0xe], 0
jne 0x430d1c
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x430ccc
cmp eax, 9
je 0x430ccc
test ax, ax
je 0x43136b
mov ebx, ecx
lea edx, [ebx + 2]
nop dword [eax + eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x430cf0
sub ebx, edx
sar ebx, 1
mov dword [esp + 0x30], ebx
lea eax, [ebx*2 + 2]
push eax
push ecx
push dword [esp + 0x18]
call sub.VCRUNTIME140.dll_memmove
mov ebx, dword [esp + 0x28]
add esp, 0xc
mov dword [ebx + 0x250], esi
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov edx, eax
cmp eax, 0x7d
jne 0x430e6f
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x430e6f
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x430e6f
cmp dword [ebx + 0x244], 0
je 0x430dd2
mov eax, dword [ebx + 0x248]
mov dword [ebx + 0x244], 0
test eax, eax
je 0x430d82
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [ebx + 0x248], 0
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x430d8a
cmp eax, 9
je 0x430d8a
mov dword [esp + 0x10], ebx
cmp word [ebx], 0
je 0x431371
lea ecx, [ebx + 2]
nop dword [eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x430db0
sub ebx, ecx
mov dword [edi + 0x64c], 0
sar ebx, 1
mov dword [esp + 0x30], ebx
jmp 0x430b66
lea eax, [ecx - 1]
mov dword [ebx + 0x28], eax
mov ebx, dword [ebx + eax*4 + 0x2c]
mov esi, dword [ebx + 0x10]
sub esi, 1
js 0x430e37
mov edi, esi
shl edi, 4
nop dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [edi + eax + 0xc], 1
jne 0x430e2f
cmp esi, dword [ebx + 0x1c]
jl 0x430e0c
push dword [edi + eax + 8]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edx, dword [ebx + 0x10]
dec edx
mov dword [ebx + 0x10], edx
cmp esi, edx
jge 0x430e2f
mov ecx, dword [ebx + 0xc]
sub edx, esi
add ecx, edi
shl edx, 4
push edx
lea eax, [ecx + 0x10]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
sub edi, 0x10
sub esi, 1
jns 0x430df0
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x28]
mov eax, dword [edi + eax*4 + 0x2c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [edi + 0x40]
push 0x2e
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x430e65
xor ecx, ecx
mov word [eax], cx
jmp 0x430d86
xor eax, eax
mov word [esi], ax
jmp 0x430d86
cmp dword [ebx + 0x244], 0
je 0x430f57
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x430f57
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
push 3
push 0x4e924c
push dword [esp + 0x18]
call esi
add esp, 0xc
test eax, eax
je 0x430ec0
push 3
push 0x4e9254
push dword [esp + 0x18]
call esi
add esp, 0xc
test eax, eax
jne 0x43223a
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 6]
movzx eax, word [esi]
cmp eax, 0x20
je 0x430ed4
cmp eax, 9
jne 0x430ed9
add esi, 2
jmp 0x430ec7
test ax, ax
je 0x430ef2
cmp eax, 0x7b
jne 0x43223e
cmp word [esi + 2], 0
jne 0x43223e
mov ecx, dword [ebx + 0x248]
lea edx, [esp + 0x2178]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x430f01
lea eax, [esp + 0x2178]
push 0x2e
push eax
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x3c], 0
mov ax, word [eax]
mov word [ecx + 2], ax
cmp word [esi], 0x7b
mov edi, dword [ebx + 0x250]
sete bl
mov dword [esp + 0x28], edi
mov byte [esp + 0xe], bl
jmp 0x43137d
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
test dx, dx
je 0x430fa1
mov esi, edx
nop word [eax + eax]
mov ecx, 0x4e8f58
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x430ffd
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x430f80
movzx eax, word [ebx + 2]
add ebx, 2
mov esi, eax
test ax, ax
jne 0x430f70
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x4315ef
mov esi, dword [esp + 0x10]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
push 5
push str.Class
push esi
call edi
add esp, 0xc
test eax, eax
jne 0x431175
movzx eax, word [esi + 0xa]
cmp eax, 0x20
je 0x430fe4
cmp eax, 9
jne 0x431175
lea edi, [esi + 0xc]
movzx eax, word [edi]
cmp eax, 0x20
je 0x430ff8
cmp eax, 9
jne 0x4310e0
add edi, 2
jmp 0x430fe7
cmp word [ebx], 0x28
jne 0x430fa1
mov esi, dword [esp + 0x10]
cmp ebx, esi
je 0x430fa1
mov edi, ebx
mov edx, 0x4e8f94
sub edi, esi
mov ecx, esi
sar edi, 1
push 0xffffffffffffffff
push edi
call fcn.004b1090
add esp, 8
test eax, eax
je 0x430fa1
mov esi, dword [esp + 0x40]
mov edx, str.WHILE
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.004b1090
add esp, 8
test eax, eax
je 0x430fa1
cmp word [ebx + 2], 0x3a
je 0x430fa1
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431060
sub ecx, edx
sar ecx, 1
dec ecx
movzx eax, word [ebx + ecx*2]
lea edx, [ebx + ecx*2]
cmp eax, 0x7b
mov ecx, eax
sete bl
mov byte [esp + 0xe], bl
jne 0x43109a
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042ac50
movzx ecx, word [esi + eax*2 - 2]
cmp cx, 0x29
jne 0x430fa1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x2178]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4310b1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], 0
mov edi, dword [ecx + 0x250]
mov dword [esp + 0x28], edi
jmp 0x43137d
push eax
push 0x4e8f58
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x43116f
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431100
sub ecx, edx
sar ecx, 1
lea edx, [ecx - 1]
movzx eax, word [edi + edx*2]
lea edx, [edi + edx*2]
cmp eax, 0x7b
sete bl
mov byte [esp + 0xe], bl
jne 0x431135
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042ac50
lea ecx, [esp + 0x2178]
sub ecx, edi
nop
movzx eax, word [edi]
lea edi, [edi + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x431140
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], 1
mov edi, dword [ecx + 0x250]
mov dword [esp + 0x28], edi
jmp 0x43137d
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov ebx, dword [esp + 0x1c]
cmp dword [ebx + 0x28], 0
je 0x4315ef
mov esi, dword [esp + 0x10]
nop word [eax + eax]
movzx eax, word [esi]
mov ecx, eax
test ecx, 0xffffff80
je 0x43119f
jmp 0x4311b5
push 0x107
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
movzx ecx, word [esi]
add esp, 8
test eax, eax
jne 0x4311c7
cmp cx, 0x5f
je 0x4311c7
cmp cx, 0x7f
ja 0x4311c7
cmp cx, 0x2e
jne 0x4311cc
add esi, 2
jmp 0x431190
cmp esi, dword [esp + 0x10]
jbe 0x431307
movzx eax, cx
nop dword [eax]
cmp ax, 0x20
je 0x4311ec
cmp ax, 9
jne 0x4311f5
movzx eax, word [esi + 2]
add esi, 2
jmp 0x4311e0
cmp ax, 0x3a
jne 0x431226
cmp word [esi + 2], 0x3d
jne 0x431307
push 0
push dword [esp + 0x14]
mov ecx, ebx
call fcn.0043cf90
test eax, eax
jne 0x431371
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test ax, ax
je 0x431246
cmp ax, 0x5b
je 0x431246
cmp ax, 0x7b
jne 0x431307
cmp word [esi + 2], 0
jne 0x431307
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431250
mov esi, dword [esp + 0x10]
sub ecx, edx
sar ecx, 1
movzx eax, word [esi + ecx*2 - 2]
cmp eax, 0x7b
sete byte [esp + 0xe]
jne 0x4312cf
dec ecx
cmp word [esi], 0
je 0x4312cf
cmp ecx, 0xffffffff
jne 0x431292
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431283
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xfffffffe
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x4312ad
cmp ecx, 9
jne 0x4312b8
cmp eax, dword [esp + 0x10]
je 0x4312c0
sub eax, 2
jmp 0x4312a0
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4312cf
cmp ecx, 0x20
je 0x4312ca
cmp ecx, 9
jne 0x4312cf
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x2178]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
mov word [ecx + edx], ax
add ecx, 2
test ax, ax
jne 0x4312e0
mov edi, dword [ebx + 0x250]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov dword [esp + 0x3c], 2
jmp 0x431379
push 6
push str.Static
push dword [esp + 0x18]
call edi
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x431338
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43132d
cmp ecx, 9
jne 0x431338
push 1
add eax, 0xe
push eax
jmp 0x43120c
cmp word [eax], 0x23
jne 0x432258
mov esi, dword [ebx + 0x250]
mov ecx, ebx
push eax
call fcn.00432a00
test eax, eax
je 0x43121b
cmp eax, 3
jne 0x432254
mov eax, dword [esp + 0x74]
mov dword [ebx + 0x24c], eax
mov dword [ebx + 0x250], esi
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov bl, byte [esp + 0xe]
mov cl, byte [esp + 0x14]
mov eax, edx
test cl, cl
je case.0x431450.4
mov esi, dword [esp + 0x58]
inc edx
mov dword [esp + 0x24], edx
mov bh, cl
mov dword [esp + 0x30], edx
mov ch, bl
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x14], cl
mov cl, byte [esp + 0xf]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], edx
mov dh, cl
mov byte [esp + 0xf], cl
mov cl, byte [esp + 0x15]
mov byte [esp + 0xe], bl
mov bl, cl
mov byte [esp + 0x15], cl
mov cl, byte [esp + 0x16]
mov byte [esp + 0x16], cl
mov dl, cl
mov cl, byte [esp + 0x17]
mov dword [esp + 0x28], edi
mov byte [esp + 0x35], ch
mov byte [esp + 0x36], dh
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], esi
mov byte [esp + 0x37], dl
mov byte [esp + 0x17], cl
mov byte [esp + 0x34], cl
cmp eax, 9
ja case.0x431450.4
mov esi, dword [esp + 0x54]
movzx eax, byte [eax + 0x432474]
mov byte [esp + 0xf], dh
mov dh, bl
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x18]
mov byte [esp + 0x15], dh
mov dh, dl
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
mov byte [esp + 0x16], dh
mov dh, cl
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x30]
mov byte [esp + 0x14], bh
mov dword [esp + 0x28], edi
mov byte [esp + 0xe], ch
mov byte [esp + 0x17], dh
mov dword [esp + 0x24], esi
jmp dword [eax*4 + 0x432460]
mov eax, dword [esp + 0x10]
test dl, dl
mov ecx, dword [0x4e6158]
mov esi, dword [esp + 0x1c]
push 0
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov cx, word [0x4e615c]
push 1
mov word [eax + 4], cx
lea eax, [esp + 0x18]
push eax
setne al
mov ecx, esi
add al, 0xc5
movzx eax, al
push eax
call fcn.00436ef0
cmp byte [esp + 0x34], 0
je 0x431509
lea eax, [esp + 0xb8]
push eax
push str.if_not_GetKeyState___s__
push dword [esp + 0x18]
call fcn.00406810
mov dword [esp + 0x30], 9
mov dword [esp + 0x3c], eax
mov dh, bl
mov al, byte [esp + 0x41]
mov byte [esp + 0x1a], al
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x21], dh
mov dh, byte [esp + 0x43]
mov dword [esp + 0x44], eax
mov al, byte [esp + 0x42]
mov byte [esp + 0x22], dh
mov dh, byte [esp + 0x40]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x54]
mov byte [esp + 0x20], bh
mov dword [esp + 0x34], edi
mov dword [esp + 0x64], eax
mov byte [esp + 0x23], dh
jmp 0x4315ec
mov esi, dword [esp + 0x1c]
movzx eax, bh
mov ecx, 0x4cfc30
sub eax, 0x12
je 0x431522
sub eax, 0x92
je 0x431522
sub eax, 1
jne 0x431542
movzx eax, bl
sub eax, 0x11
je 0x43153d
sub eax, 0x91
je 0x43153d
sub eax, 1
jne 0x431542
mov ecx, str.RCtrl_up
jmp 0x431542
mov ecx, str.LCtrl_up
lea eax, [esp + 0xb8]
mov dword [esi + 0x64c], 0
push eax
lea eax, [esp + 0x8c]
push eax
push ecx
push str.Blind_s_s_s_DownR
push dword [esp + 0x20]
call fcn.00406810
add esp, 0x14
lea eax, [esp + 0x10]
mov ecx, esi
push 0
push 1
push eax
push 0x41
call fcn.00436ef0
test eax, eax
je 0x43121b
push 0
push 0
push 0
push 0x67
mov ecx, esi
call fcn.00436ef0
lea eax, [esp + 0xf8]
mov dword [esi + 0x64c], 0
push eax
push str._s_up::
push dword [esp + 0x18]
call fcn.00406810
mov dword [esp + 0x30], 2
jmp 0x4314b6
je 0x431bb6
mov dword [esp + 0x24], 1
lea eax, [esp + 0xf8]
push eax
push str._s::
push dword [esp + 0x18]
call fcn.00406810
mov dword [esp + 0x3c], eax
add esp, 0xc
mov esi, dword [esp + 0x10]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x18], edi
cmp word [esi], 0x3a
jne 0x4317b6
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x4317b6
mov dword [esp + 0x38], esi
cmp eax, 0x3a
je 0x43163b
push 0x3a
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov ebx, eax
add esp, 8
lea eax, [ebx + 2]
neg ebx
sbb ebx, ebx
and ebx, eax
mov dword [esp + 0x54], ebx
jmp 0x431651
mov eax, dword [esp + 0x10]
add eax, 4
cmp word [eax], bx
je 0x4317b6
mov ebx, eax
mov dword [esp + 0x54], eax
test ebx, ebx
je 0x4317b6
mov al, byte [0x4fb8a4]
mov byte [esp + 0xf], al
cmp esi, ebx
jae 0x4316b1
movzx eax, word [esi]
mov edi, eax
test eax, 0xffffff80
je 0x431676
xor edx, edx
jmp 0x431684
push 2
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
mov edx, eax
mov eax, edi
add esi, 2
and eax, 0xffdf
test edx, edx
movzx ecx, ax
mov eax, edi
cmove ecx, eax
cmp cx, 0x58
je 0x4316a4
cmp esi, ebx
jb 0x431666
jmp 0x4316ad
cmp word [esi], 0x30
setne byte [esp + 0xf]
mov edi, dword [esp + 0x18]
mov esi, ebx
movzx eax, word [esi]
mov ebx, edi
mov edx, eax
test ax, ax
je 0x4316e6
mov ecx, eax
movzx edx, cx
cmp cx, word [str.___F]
je 0x4316e6
movzx edx, cx
cmp cx, 0x3a
je 0x4316e6
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x4316c1
mov ecx, esi
test dx, dx
je 0x4317b0
movzx eax, word [esi + 2]
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x431725
cmp eax, 0x3a
jne 0x431714
cmp byte [esp + 0xf], 0
mov dword [esp + 0x18], esi
mov esi, edi
jne 0x4317ac
cmp eax, 0x3a
mov edi, ecx
cmovne edi, ebx
add esi, 2
mov dword [esp + 0x18], edi
jmp 0x4316b3
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x431734.99
movzx eax, byte [eax + 0x4324a0]
jmp dword [eax*4 + 0x432480]
mov eax, 7
jmp 0x43176a
mov eax, 8
jmp 0x43176a
mov eax, 0xc
jmp 0x43176a
mov eax, 0xa
jmp 0x43176a
mov eax, 0xd
jmp 0x43176a
mov eax, 9
jmp 0x43176a
mov eax, 0xb
mov word [edi], ax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431772
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp word [esi], 0x3a
jne 0x4317a0
cmp word [edi], 0x3a
cmove esi, edi
mov edi, dword [esp + 0x18]
add esi, 2
jmp 0x4316b3
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x431826
xor ebx, ebx
push 0x4e90f4
push dword [esp + 0x14]
mov dword [esp + 0x5c], ebx
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x431f1f
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x4317ee
cmp word [eax + 4], 0x3a
jne 0x4317ee
add eax, 2
mov dword [esp + 0x18], eax
mov esi, eax
cmp eax, ecx
jbe 0x431808
movzx eax, word [esi]
cmp eax, 0x20
je 0x431801
cmp eax, 9
jne 0x431808
sub esi, 2
cmp esi, ecx
ja 0x4317f4
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x431821
cmp eax, 9
jne 0x43182c
add ecx, 2
jmp 0x431814
mov dword [esp + 0x48], edi
jmp 0x431874
push 0
xor edx, edx
call fcn.00417190
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
je 0x43184b
cmp eax, 4
je 0x43121b
jmp 0x431851
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov cl, byte [esp + 0xf]
mov word [esi], di
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x48], edi
mov dword [esp + 0x38], esi
mov byte [esp + 0xf], cl
test edi, edi
je 0x431f1f
mov edx, dword [esp + 0x10]
cmp edi, edx
jbe 0x431f23
mov eax, dword [0x4f90f4]
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 0xb4], 0
jne 0x432302
mov eax, dword [ecx + 0x614]
test eax, eax
je 0x4318a9
cmp byte [eax], 0x1a
je 0x43226e
mov ebx, dword [esp + 0x54]
xor eax, eax
mov word [edi], ax
add edi, 4
mov dword [esp + 0x18], edi
test ebx, ebx
jne 0x431bc3
movzx eax, word [edi]
test ax, ax
je 0x431914
mov edx, edi
nop dword [eax + eax]
cmp ax, 0x20
je 0x4318dc
cmp ax, 9
jne 0x4318e5
movzx eax, word [edx + 2]
add edx, 2
jmp 0x4318d0
mov eax, edx
sub eax, edi
cmp eax, 2
jb 0x431914
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4318f3
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov edx, dword [esp + 0x18]
cmp word [edx], 0
je 0x431bbf
movzx eax, word [edx + 2]
mov ecx, eax
test ax, ax
je 0x431981
mov edi, edx
nop
cmp ax, 0x20
je case.0x431948.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x431948.34
movzx eax, byte [eax + 0x4324c0]
jmp dword [eax*4 + 0x4324b8]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x431930
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041f4a0
add esp, 0xc
mov byte [esp + 0x14], al
test al, al
je 0x431bbf
jmp 0x431986
mov byte [esp + 0x14], 0xff
mov esi, dword [esp + 0x10]
cmp word [esi], 0
je case.0x4319b8.34
cmp word [esi + 2], 0
je case.0x4319b8.34
movzx eax, word [esi + 2]
nop dword [eax + eax]
cmp ax, 0x20
je case.0x4319b8.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x4319b8.34
movzx eax, byte [eax + 0x432528]
jmp dword [eax*4 + 0x432520]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x4319a0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041f4a0
add esp, 0xc
mov byte [esp + 0x15], al
push 0x4e6604
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov ebx, eax
add esp, 8
mov al, byte [esp + 0x15]
mov cl, al
dec cl
cmp cl, 5
ja 0x431a09
cmp al, 3
jne 0x431a0f
add al, 0x66
cmp al, 5
ja 0x431a13
mov cl, 1
jmp 0x431a15
xor cl, cl
mov dl, byte [esp + 0x14]
mov al, dl
dec al
cmp al, 5
ja 0x431a26
cmp dl, 3
jne 0x431a2e
mov al, dl
add al, 0x66
cmp al, 5
ja 0x431a32
mov al, 1
jmp 0x431a34
xor al, al
mov byte [esp + 0x16], al
test cl, cl
jne 0x431a45
mov byte [esp + 0x17], 1
test al, al
jne 0x431a4a
mov byte [esp + 0x17], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431a50
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x431a77
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4e9344
jne 0x431a7c
mov eax, 0x4cfc30
push dword [esp + 0x10]
test ebx, ebx
mov ecx, 0x4e8f54
push eax
mov eax, 0x4cfc30
cmove eax, ecx
push eax
push 0x4e9348
lea eax, [esp + 0x108]
push 0x20
push eax
call fcn.004b0fe0
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
lea eax, [esp + 0xd0]
push 0x1f
push edi
push eax
call esi
mov ebx, dword [esp + 0x3c]
add esp, 0x24
xor eax, eax
mov word [esp + 0xf6], ax
lea eax, [esp + 0x88]
push 7
push ebx
push eax
call esi
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [esp + 0x96], ax
cmp edi, 8
jae 0x431af4
mov word [esp + edi*2 + 0x88], ax
xor edx, edx
mov dword [esp + 0x24], edx
cmp word [esp + 0x88], dx
jne 0x431375
mov al, byte [esp + 0x14]
cmp al, 0xd
je 0x431b99
cmp al, 0x13
jne 0x4315ca
mov ax, word [esp + 0xb8]
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
movzx esi, ax
test esi, 0xffffff80
je 0x431b39
xor edi, edi
jmp 0x431b4b
push 2
push esi
call ebx
mov edi, eax
add esp, 8
mov ax, word [esp + 0xb8]
mov edx, esi
mov ecx, esi
and ecx, 0xffdf
test edi, edi
movzx esi, cx
mov ecx, edx
cmove esi, ecx
cmp si, 0x50
je 0x431bb6
movzx esi, ax
test esi, 0xffffff80
je 0x431b74
xor eax, eax
jmp 0x431b7c
push 2
push esi
call ebx
add esp, 8
mov edx, esi
mov ecx, esi
and ecx, 0xffdf
test eax, eax
movzx esi, cx
mov ecx, edx
cmove esi, ecx
cmp si, 0x42
jmp 0x4315c4
lea eax, [esp + 0xb8]
push str.Return
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jmp 0x4315c4
mov ebx, dword [esp + 0x54]
mov byte [esp + 0x14], 0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cmp byte [esi + 0x254], 0
je 0x431c08
push 0
push 0xff
push 0
push 0x67
mov ecx, esi
mov byte [esi + 0x254], 0
call fcn.00436ef0
test eax, eax
je 0x43121b
mov eax, dword [esi + 0x614]
mov dword [eax + 0xc], 1
mov dword [esi + 0x64c], 0
push 1
push dword [esp + 0x14]
mov ecx, esi
call fcn.00434470
test eax, eax
je 0x43121b
test ebx, ebx
je 0x431d12
cmp word [ebx], 0
je 0x4322ad
cmp byte [esp + 0xf], 0
mov eax, 0x4cfc30
mov edx, dword [esp + 0x38]
push 0
push dword [esp + 0x80]
cmove eax, edi
push eax
push ebx
mov ebx, esi
mov ecx, dword [ebx + 0x624]
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebx + 0x624]
mov ecx, dword [ecx + 4]
call fcn.004181f0
add esp, 0x14
test eax, eax
je 0x43121b
movzx eax, word [edi]
test ax, ax
je 0x431371
cmp byte [esp + 0xf], 0
je 0x431ce9
cmp ax, 0x20
je 0x431c90
cmp ax, 9
jne 0x431c99
movzx eax, word [edi + 2]
add edi, 2
jmp 0x431c84
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov ecx, ebx
call fcn.00434620
test eax, eax
je 0x43121b
mov eax, dword [ebx + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x431cc9
cmp al, 0x20
jbe 0x432288
cmp al, 0x21
je 0x432288
cmp al, 0x69
jb 0x431cdd
cmp al, 0x6b
jbe 0x432288
cmp al, 0x71
jb 0x431ce9
cmp al, 0x73
jbe 0x432288
push 0
push 0
push 0
push 0x67
mov ecx, ebx
call fcn.00436ef0
test eax, eax
je 0x43121b
mov eax, dword [ebx + 0x614]
mov dword [eax + 0xc], 1
jmp 0x431371
xor esi, esi
cmp word [edi], si
je 0x431e20
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
push str.AltTab
push edi
call ebx
add esp, 8
test eax, eax
jne 0x431d40
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffe
jmp 0x431dfa
push str.ShiftAltTab
push edi
call ebx
add esp, 8
test eax, eax
jne 0x431d5d
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffd
jmp 0x431dfa
push str.AltTabMenu
push edi
call ebx
add esp, 8
test eax, eax
jne 0x431d7a
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffc
jmp 0x431dfa
push str.AltTabAndMenu
push edi
call ebx
add esp, 8
test eax, eax
jne 0x431d94
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffb
jmp 0x431dfa
push str.AltTabMenuDismiss
push edi
call ebx
mov ebx, dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x431dae
mov esi, 0x7ffa
jmp 0x431dfa
xor esi, esi
mov ecx, ebx
push esi
push esi
push esi
push esi
push esi
push esi
push edi
call fcn.00434620
test eax, eax
je 0x43121b
mov eax, dword [ebx + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x431dda
cmp al, 0x20
jbe 0x432288
cmp al, 0x21
je 0x432288
cmp al, 0x69
jb 0x431dee
cmp al, 0x6b
jbe 0x432288
cmp al, 0x71
jb 0x431dfa
cmp al, 0x73
jbe 0x432288
push 0
push 0
push 0
push 0x67
mov ecx, ebx
call fcn.00436ef0
test eax, eax
je 0x43121b
mov eax, dword [ebx + 0x614]
mov dword [eax + 0xc], 1
jmp 0x431e24
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x5f]
push eax
lea edx, [esp + 0x84]
call fcn.00417b30
mov edi, eax
add esp, 4
test edi, edi
je 0x431ea9
test si, si
je 0x431e50
mov word [edi + 6], si
jmp 0x431371
mov eax, dword [edi + 0x20]
test eax, eax
je 0x431e70
mov ecx, dword [0x4fc3cc]
nop dword [eax]
cmp dword [eax + 4], ecx
je 0x4322c6
mov eax, dword [eax + 8]
test eax, eax
jne 0x431e60
push dword [esp + 0x80]
mov ecx, edi
push dword [ebx + 0x624]
call fcn.00417080
test eax, eax
je 0x4322e9
cmp byte [esp + 0x5f], 0
jne 0x431ea0
cmp byte [0x4fb8c7], 0
je 0x431371
mov byte [edi + 0x14], 1
jmp 0x431371
mov ecx, dword [ebx + 0x624]
mov edx, esi
push 0
push dword [esp + 0x84]
push dword [ecx + 4]
call fcn.00416640
add esp, 0xc
test eax, eax
jne 0x431371
cmp dword [esp + 0x58], 3
jne 0x43121b
cmp dword [ebx + 0xb00], eax
jne 0x431371
push dword [esp + 0x10]
lea eax, [esp + 0x13c]
push str.Note:_The_hotkey__s_will_not_be_active_because_it_does_not_exist_in_the_current_keyboard_layout.
push 0x80
push eax
call fcn.004b0fe0
push 0
push 0
xorps xmm3, xmm3
lea ecx, [esp + 0x150]
mov edx, 0x10000
call fcn.004b75d0
add esp, 0x18
jmp 0x431371
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
cmp word [edx + ebx*2 - 2], 0x3a
jne 0x431ff0
cmp ebx, 1
je 0x432316
movzx eax, word [edx]
mov esi, edx
test ax, ax
je 0x431f84
mov di, word [0x4fa350]
mov ecx, eax
nop
cmp cx, 0x20
je 0x431ff0
cmp cx, 9
je 0x431ff0
cmp cx, di
je 0x431ff0
cmp cx, word [str.___F]
je 0x431ff0
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x431f50
cmp word [edx + ebx*2 - 4], 0x3a
jne 0x431f91
cmp ebx, 2
ja 0x431ff0
xor eax, eax
mov word [edx + ebx*2 - 2], ax
push str.Default
push dword [esp + 0x14]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ebx, dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x431fe1
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x431fe1
mov eax, dword [eax + 0x10]
test eax, eax
je 0x431fe1
cmp byte [eax], 0x75
jne 0x431fe1
push 0
push 0
push 0
push 0x76
mov ecx, ebx
call fcn.00436ef0
test eax, eax
je 0x43121b
jmp 0x431371
push 0
push dword [esp + 0x14]
mov ecx, ebx
call fcn.00434470
jmp 0x43203e
cmp word [edx], 0x23
mov ebx, dword [esp + 0x1c]
jne 0x43201d
mov esi, dword [ebx + 0x250]
mov ecx, ebx
push edx
call fcn.00432a00
test eax, eax
je 0x43121b
cmp eax, 3
je 0x431361
mov edx, dword [esp + 0x10]
movzx eax, word [edx]
cmp eax, 0x7b
je 0x43204b
cmp eax, 0x7d
je 0x43204b
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov ecx, ebx
call fcn.00434620
test eax, eax
je 0x43121b
jmp 0x431371
cmp eax, 0x7b
mov ecx, ebx
push 0
setne al
push 0
add al, 0x77
push 0
movzx eax, al
push eax
call fcn.00436ef0
test eax, eax
je 0x43121b
mov ebx, dword [esp + 0x10]
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x432070
cmp eax, 9
je 0x432070
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
cmp word [ebx], 0
je 0x431375
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x432096
sub ebx, ecx
mov ecx, dword [esp + 0x1c]
sar ebx, 1
mov dword [esp + 0x30], ebx
mov dword [ecx + 0x64c], 0
jmp 0x430b66
mov eax, dword [esp + 0x10]
test dl, dl
mov ecx, dword [0x4e6158]
push 0
push 1
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov cx, word [0x4e615c]
mov word [eax + 4], cx
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x24]
push eax
setne al
add al, 0xc5
movzx eax, al
push eax
call fcn.00436ef0
lea eax, [esp + 0xb8]
push eax
push str.Blind_s_Up
push dword [esp + 0x18]
call fcn.00406810
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x1c]
add esp, 0xc
push 0
push 1
push eax
push 0x41
call fcn.00436ef0
mov ecx, dword [esp + 0x1c]
push 0
push 0
push 0
push 0x67
call fcn.00436ef0
mov eax, dword [esp + 0x54]
mov dh, bl
mov dl, byte [esp + 0x35]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x15], dh
mov dh, byte [esp + 0x37]
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x36]
mov byte [esp + 0x16], dh
mov dh, byte [esp + 0x34]
mov byte [esp + 0xf], al
mov eax, dword [esp + 0x48]
mov byte [esp + 0x14], 0
mov dword [esp + 0x28], edi
mov byte [esp + 0xe], dl
mov dword [esp + 0x58], eax
mov byte [esp + 0x17], dh
mov dword [esp + 0x24], esi
jmp 0x432183
mov dl, byte [esp + 0xe]
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xa180]
cmp dword [esp + 0x84], edi
lea eax, [esp + 0x12188]
mov ebx, dword [esp + 0x44]
mov esi, edi
mov edi, dword [esp + 0x1c]
cmovne eax, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], eax
jmp 0x430290
push dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
push str.Continuation_section_too_long.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 0x244], 0
lea eax, [esp + 0x2178]
push eax
mov ecx, str.Not_a_valid_method__class_or_property_definition.
mov eax, 0x4e91d0
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
push 0x4e91d0
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x2178]
push eax
push str.Functions_cannot_contain_functions.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x10]
push ecx
push str.Not_a_valid_property_getter_setter.
mov ecx, ebx
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esp + 0x10]
push eax
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, ebx
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push edx
push str.IfWin_should_be_IfWin.
mov dword [ecx + 0x64c], eax
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esp + 0x48]
mov ecx, 0x3a
mov word [eax], cx
mov ecx, ebx
push dword [esp + 0x10]
push str.Invalid_single_line_hotkey_hotstring.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, ebx
mov dword [ebx + 0x64c], 0
push str.Duplicate_hotkey.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, ebx
push 0x4e3be8
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push edx
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x1c]
push edx
push str.This_line_does_not_contain_a_recognized_action.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x1c]
push edi
push str.Continuation_section_too_long.
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push 0x4e916c
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp word [esp + 0x2178], 0
je 0x4323cd
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x28]
mov esi, dword [edi + 0x250]
mov dword [edi + 0x250], eax
lea eax, [esp + 0x2178]
je 0x4323ab
push eax
test dl, dl
mov ecx, 0x4e91d0
mov eax, str.Missing___
cmove eax, ecx
mov ecx, edi
push eax
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0
push 0
push 0
push 3
push eax
mov ecx, edi
call fcn.00434620
test eax, eax
je 0x43121b
mov dword [edi + 0x250], esi
cmp dword [edi + 0x28], 0
je 0x4323f3
cmp dword [esp + 0x74], 0
jne 0x4323f3
lea eax, [edi + 0x40]
mov ecx, edi
push eax
push str.Missing___
call fcn.0044e970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
inc dword [edi + 0x250]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4