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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1a184
call fcn.004cdac0
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 [0x4fc580]
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.00432980
push 2
push 0x4e90e0
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 0x4304b8
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 0x432601
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 0x43056d
push dword [esp + 0x10]
mov ecx, edi
call fcn.00432ca0
test eax, eax
je 0x4314ab
xor esi, esi
mov byte [esp + 0x7c], 0
mov dword [esp + 0x18], esi
jmp 0x43058a
mov ebx, dword [esp + 0x30]
jmp 0x43058e
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.00432980
mov edi, eax
mov dword [esp + 0x44], edi
test edi, edi
je 0x430652
cmp edi, 0xffffffff
je 0x430652
test esi, esi
jne 0x430652
push 2
push 0x4e9104
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 0x430628
cmp byte [esp + 0x2f], al
jne 0x4305ec
cmp word [edx + 4], 0x3a
jne 0x4305ec
cmp word [edx + 6], 0x3a
je 0x430633
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.0042acb0
mov edx, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x44], edi
cmp word [edx], 0
je 0x43058e
jmp 0x430633
cmp byte [esp + 0x2f], 0
jne 0x43058e
push 2
push 0x4e90e0
push edx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x430652
mov byte [esp + 0x2f], 1
jmp 0x43058a
cmp byte [esp + 0x2f], 0
je 0x430667
cmp edi, 0xffffffff
je 0x430df2
jmp 0x43058a
test esi, esi
jne 0x430bb2
mov edx, dword [esp + 0x20]
cmp edi, 0xffffffff
je 0x430890
cmp word [edx], 0x28
jne 0x430890
cmp word [edx + 2], 0x3a
lea esi, [edx + 2]
je 0x430890
cmp word [edx + edi*2 - 2], 0x3a
je 0x430890
mov al, byte [0x4fba7e]
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 0x4306ed
cmp eax, 9
jne 0x4306f2
add esi, 2
jmp 0x4306e0
test ax, ax
je 0x43087e
nop dword [eax + eax]
mov ebx, esi
test esi, esi
je 0x430741
movzx eax, word [esi]
test ax, ax
je 0x430741
mov edi, eax
mov ecx, 0x4e6614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x430758
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x430720
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x430710
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x430746
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 0x4307c9
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.004b36c0
lea edx, [esp + 0x9c]
add esp, 4
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4307b1
sub edx, ecx
sar edx, 1
mov dword [esp + 0x70], edx
jmp 0x430859
push 5
push 0x4e91ac
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4307ea
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x4e]
jmp 0x430859
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 0x43080b
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x4d]
jmp 0x430859
movzx eax, word [esi]
test ax, ax
je 0x430859
mov ecx, eax
movzx eax, cx
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x430827.38
movzx eax, byte [eax + 0x4326c0]
jmp dword [eax*4 + 0x4326a8]
mov byte [esp + 0x4f], 1
jmp case.0x430827.38
mov byte [esp + 0x50], 1
jmp case.0x430827.38
mov byte [esp + 0x51], 0
jmp case.0x430827.38
mov dword [esp + 0x18], 2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x430815
mov word [ebx], di
mov esi, ebx
mov eax, edi
cmp ax, 0x20
je 0x43086c
cmp ax, 9
jne 0x430875
movzx eax, word [esi + 2]
add esi, 2
jmp 0x430860
test ax, ax
jne 0x430700
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x7c], 1
jmp 0x43058a
lea ebx, [edi + edi]
mov dword [esp + 0x48], ebx
cmp edi, 0xffffffff
je 0x430df2
xor esi, esi
mov dword [esp + 0x18], esi
test edi, edi
je 0x430580
cmp word [ebx + edx - 2], 0x3a
jne 0x4308c0
cmp word [edx], 0x2c
jne 0x430df2
movzx esi, word [edx]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test esi, 0xffffff80
je 0x4308d5
xor ecx, ecx
jmp 0x4308e3
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 0x430af6
cmp eax, 0x4f
je 0x430a8d
movzx eax, word [edx]
cmp eax, 0x3a
je 0x430916
cmp eax, 0x2b
je 0x430916
cmp eax, 0x2d
je 0x430916
lea edi, [edx + 2]
jmp 0x430923
cmp word [edx + 2], ax
lea edi, [edx + 2]
je 0x430df2
push eax
push str.____:.___
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x430df2
push 0x4e914c
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 0x430961
mov ebx, dword [esp + 0x48]
jmp 0x430b5c
mov eax, dword [esp + 0x20]
cmp word [eax], 0x3a
jne 0x4309db
mov esi, edi
xor edx, edx
mov dword [esp + 0x18], edx
movzx eax, word [esi]
test ax, ax
je 0x4309cd
mov ecx, eax
mov dword [esp + 0x18], edx
cmp cx, 0x3a
je 0x4309cd
movzx eax, cx
test eax, 0xffffff80
je 0x430996
movzx ecx, cx
jmp 0x4309ac
push 0x107
push eax
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 0x4309bf
push ecx
push str.____t
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x4309d7
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x430981
cmp word [esi], 0x3a
je 0x430df2
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp word [ecx], 0x2c
jne 0x430a33
movzx eax, word [edi]
cmp eax, 0x20
je 0x4309f2
cmp eax, 9
jne 0x4309f7
add edi, 2
jmp 0x4309e5
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
push 2
push 0x4e914c
push edi
call ebx
add esp, 0xc
test eax, eax
je 0x430df2
push 3
lea eax, [edi - 2]
push 0x4e6604
push eax
call ebx
add esp, 0xc
test eax, eax
je 0x430df2
mov ebx, dword [esp + 0x48]
jmp 0x430b5c
mov eax, ecx
cmp ecx, ebx
jae 0x430a4d
nop dword [eax]
cmp word [eax], 0x22
je 0x430a55
add eax, 2
cmp eax, ebx
jb 0x430a40
cmp eax, ebx
je 0x430df2
movzx eax, word [ebx + 4]
lea ecx, [ebx + 4]
test ax, ax
je 0x430df2
mov edx, eax
cmp dx, 0x22
je 0x430a80
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x430a67
jmp 0x430df2
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x18], esi
jmp 0x430b5c
movzx eax, word [edx + 2]
mov esi, eax
test eax, 0xffffff80
je 0x430a9e
xor edx, edx
jmp 0x430aa8
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 0x430df2
mov ecx, dword [esp + 0x20]
add ecx, 4
movzx eax, word [ecx]
cmp eax, 0x20
je 0x430adb
cmp eax, 9
jne 0x430df2
xor esi, esi
mov dword [esp + 0x18], esi
cmp ax, 0x20
je 0x430aed
cmp ax, 9
jne 0x430b45
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x430ae1
push 3
push 0x4e910c
push edx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x430df2
mov ecx, dword [esp + 0x20]
add ecx, 6
movzx eax, word [ecx]
cmp eax, 0x20
je 0x430b27
cmp eax, 9
jne 0x430df2
xor esi, esi
mov dword [esp + 0x18], esi
nop dword [eax]
cmp ax, 0x20
je 0x430b3c
cmp ax, 9
jne 0x430b45
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x430b30
push eax
push str.____:
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x430df2
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
lea eax, [edi + ecx]
cmp eax, 0x4000
jae 0x43245a
mov edx, dword [esp + 0x20]
cmp word [edx], 0x2c
je 0x430b92
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 0x430586
cmp edi, 0xffffffff
je 0x4325e6
mov edx, dword [esp + 0x20]
cmp edi, 0xfffffffe
je 0x43058e
mov edi, edx
cmp word [edi], 0x29
jne 0x430c3d
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 0x430be0
sub edx, ecx
lea eax, [edi - 2]
sar edx, 1
lea eax, [eax + edx*2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x430c02
cmp ecx, 9
jne 0x430c0c
cmp eax, edi
je 0x430c1f
sub eax, 2
dec edx
jmp 0x430bf5
xor ecx, ecx
add edi, 2
dec edx
mov word [eax + 2], cx
mov dword [esp + 0x44], edx
jmp 0x430d6d
cmp ecx, 0x20
je 0x430c29
cmp ecx, 9
jne 0x430c30
xor ecx, ecx
xor edx, edx
mov word [eax], cx
add edi, 2
dec edx
mov dword [esp + 0x44], edx
jmp 0x430d6d
cmp byte [esp + 0x4d], 0
mov esi, dword [esp + 0x20]
je 0x430c59
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.0042ad20
mov dword [esp + 0x44], eax
jmp 0x430c5d
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x4e], 0
je 0x430c71
mov edx, eax
mov ecx, esi
call fcn.0042acb0
mov dword [esp + 0x44], eax
xor esi, esi
cmp byte [esp + 0x4f], 0
je 0x430cb1
mov ax, word [0x4fa340]
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.004b1c60
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x50], 0
je 0x430cf8
mov ax, word [0x4fa340]
lea edx, [esp + 0x60]
mov cx, word [0x4fa344]
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.004b1c60
add esp, 0x18
add esi, eax
cmp byte [esp + 0x51], 0
je 0x430d3f
mov ax, word [0x4fa340]
lea edx, [esp + 0x60]
mov cx, word [0x4fa348]
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.004b1c60
add esp, 0x18
add esi, eax
test esi, esi
je 0x430d65
mov edx, dword [esp + 0x20]
lea ecx, [edx + 2]
nop word [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x430d50
sub edx, ecx
sar edx, 1
mov dword [esp + 0x44], edx
jmp 0x430d69
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 0x4325ce
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, 1
jle 0x430dc5
test ecx, ecx
je 0x430dc5
cmp edi, dword [esp + 0x20]
jne 0x430dc5
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 0x43058a
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 0x430586
mov word [ebx], di
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x431601
cmp word [esp + 0x2178], 0
mov ebx, dword [esp + 0x1c]
je 0x430fb2
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 0x430e91
cmp byte [esp + 0xe], 0
jne 0x430e91
cmp dword [esp + 0x3c], 0
jne 0x4324a2
cmp dword [ebx + 0x28], 0
je 0x430e55
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
je 0x432475
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [esp + 0x2190]
mov ecx, ebx
push eax
call fcn.004348c0
test eax, eax
je 0x4314ab
xor eax, eax
mov dword [ebx + 0x64c], 0
mov word [esp + 0x2178], ax
jmp 0x430fac
mov edi, dword [esp + 0x3c]
mov eax, edi
sub eax, 0
je 0x430ede
sub eax, 1
je 0x430ebb
sub eax, 1
jne 0x430f43
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
call fcn.0043d060
jmp 0x430eca
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
call fcn.0043c900
test eax, eax
je 0x4314ab
xor eax, eax
mov word [esp + 0x2178], ax
jmp 0x430f51
mov eax, dword [0x4f90f4]
mov ecx, ebx
cmp dword [eax + 0xb4], 0
jne 0x4324bf
lea eax, [esp + 0x238]
push eax
lea eax, [esp + 0x217c]
push eax
call fcn.0043be30
test eax, eax
je 0x4314ab
cmp byte [esp + 0xe], 0
je 0x430f43
push 0
push 0
push 0
push 0x77
mov ecx, ebx
call fcn.00437190
test eax, eax
je 0x4314ab
xor eax, eax
mov dword [ebx + 0x64c], 0
mov word [esp + 0x2178], ax
jmp 0x430fac
xor eax, eax
mov word [esp + 0x2178], ax
test edi, edi
je 0x430fac
cmp byte [esp + 0xe], 0
jne 0x430fac
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x430f5c
cmp eax, 9
je 0x430f5c
test ax, ax
je 0x4315fb
mov ebx, ecx
lea edx, [ebx + 2]
nop dword [eax + eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x430f80
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 0x4310ff
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x4310ff
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x4310ff
cmp dword [ebx + 0x244], 0
je 0x431062
mov eax, dword [ebx + 0x248]
mov dword [ebx + 0x244], 0
test eax, eax
je 0x431012
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 0x43101a
cmp eax, 9
je 0x43101a
mov dword [esp + 0x10], ebx
cmp word [ebx], 0
je 0x431601
lea ecx, [ebx + 2]
nop dword [eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x431040
sub ebx, ecx
mov dword [edi + 0x64c], 0
sar ebx, 1
mov dword [esp + 0x30], ebx
jmp 0x430df6
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 0x4310c7
mov edi, esi
shl edi, 4
nop dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + edi + 0xc], 1
jne 0x4310bf
cmp esi, dword [ebx + 0x1c]
jl 0x43109f
push dword [ecx + edi + 8]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [ebx + 0xc]
add esp, 4
mov eax, dword [ebx + 0x10]
dec eax
mov dword [ebx + 0x10], eax
cmp esi, eax
jge 0x4310bf
add ecx, edi
sub eax, esi
shl eax, 4
push eax
lea eax, [ecx + 0x10]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
sub edi, 0x10
sub esi, 1
jns 0x431080
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 0x4310f5
xor ecx, ecx
mov word [eax], cx
jmp 0x431016
xor eax, eax
mov word [esi], ax
jmp 0x431016
cmp dword [ebx + 0x244], 0
je 0x4311e7
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x4311e7
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
push 3
push 0x4e92a4
push dword [esp + 0x18]
call esi
add esp, 0xc
test eax, eax
je 0x431150
push 3
push 0x4e92ac
push dword [esp + 0x18]
call esi
add esp, 0xc
test eax, eax
jne 0x4324da
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 6]
movzx eax, word [esi]
cmp eax, 0x20
je 0x431164
cmp eax, 9
jne 0x431169
add esi, 2
jmp 0x431157
test ax, ax
je 0x431182
cmp eax, 0x7b
jne 0x4324de
cmp word [esi + 2], 0
jne 0x4324de
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 0x431191
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 0x43160d
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
test dx, dx
je 0x431231
mov esi, edx
nop word [eax + eax]
mov ecx, 0x4e8fb0
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x43128d
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x431210
movzx eax, word [ebx + 2]
add ebx, 2
mov esi, eax
test ax, ax
jne 0x431200
mov eax, dword [0x4f90f4]
cmp dword [eax + 0xb4], 0
jne 0x43187f
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 0x431405
movzx eax, word [esi + 0xa]
cmp eax, 0x20
je 0x431274
cmp eax, 9
jne 0x431405
lea edi, [esi + 0xc]
movzx eax, word [edi]
cmp eax, 0x20
je 0x431288
cmp eax, 9
jne 0x431370
add edi, 2
jmp 0x431277
cmp word [ebx], 0x28
jne 0x431231
mov esi, dword [esp + 0x10]
cmp ebx, esi
je 0x431231
mov edi, ebx
mov edx, 0x4e8fec
sub edi, esi
mov ecx, esi
sar edi, 1
push 0xffffffffffffffff
push edi
call fcn.004b1520
add esp, 8
test eax, eax
je 0x431231
mov esi, dword [esp + 0x40]
mov edx, str.WHILE
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.004b1520
add esp, 8
test eax, eax
je 0x431231
cmp word [ebx + 2], 0x3a
je 0x431231
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4312f0
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 0x43132a
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042ad20
movzx ecx, word [esi + eax*2 - 2]
cmp cx, 0x29
jne 0x431231
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 0x431341
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 0x43160d
push eax
push 0x4e8fb0
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x4313ff
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431390
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 0x4313c5
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042ad20
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 0x4313d0
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 0x43160d
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 0x43187f
mov esi, dword [esp + 0x10]
nop word [eax + eax]
movzx eax, word [esi]
mov ecx, eax
test ecx, 0xffffff80
je 0x43142f
jmp 0x431445
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 0x431457
cmp cx, 0x5f
je 0x431457
cmp cx, 0x7f
ja 0x431457
cmp cx, 0x2e
jne 0x43145c
add esi, 2
jmp 0x431420
cmp esi, dword [esp + 0x10]
jbe 0x431597
movzx eax, cx
nop dword [eax]
cmp ax, 0x20
je 0x43147c
cmp ax, 9
jne 0x431485
movzx eax, word [esi + 2]
add esi, 2
jmp 0x431470
cmp ax, 0x3a
jne 0x4314b6
cmp word [esi + 2], 0x3d
jne 0x431597
push 0
push dword [esp + 0x14]
mov ecx, ebx
call fcn.0043d230
test eax, eax
jne 0x431601
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test ax, ax
je 0x4314d6
cmp ax, 0x5b
je 0x4314d6
cmp ax, 0x7b
jne 0x431597
cmp word [esi + 2], 0
jne 0x431597
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4314e0
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 0x43155f
dec ecx
cmp word [esi], 0
je 0x43155f
cmp ecx, 0xffffffff
jne 0x431522
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431513
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 0x43153d
cmp ecx, 9
jne 0x431548
cmp eax, dword [esp + 0x10]
je 0x431550
sub eax, 2
jmp 0x431530
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x43155f
cmp ecx, 0x20
je 0x43155a
cmp ecx, 9
jne 0x43155f
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 0x431570
mov edi, dword [ebx + 0x250]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov dword [esp + 0x3c], 2
jmp 0x431609
push 6
push str.Static
push dword [esp + 0x18]
call edi
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x4315c8
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x4315bd
cmp ecx, 9
jne 0x4315c8
push 1
add eax, 0xe
push eax
jmp 0x43149c
cmp word [eax], 0x23
jne 0x4324f8
mov esi, dword [ebx + 0x250]
mov ecx, ebx
push eax
call fcn.00432ca0
test eax, eax
je 0x4314ab
cmp eax, 3
jne 0x4324f4
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.0x4316e0.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.0x4316e0.4
mov esi, dword [esp + 0x54]
movzx eax, byte [eax + 0x432714]
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 + 0x432700]
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.00437190
cmp byte [esp + 0x34], 0
je 0x431799
lea eax, [esp + 0xb8]
push eax
push str.if_not_GetKeyState___s__
push dword [esp + 0x18]
call fcn.00406890
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 0x43187c
mov esi, dword [esp + 0x1c]
movzx eax, bh
mov ecx, 0x4cfc40
sub eax, 0x12
je 0x4317b2
sub eax, 0x92
je 0x4317b2
sub eax, 1
jne 0x4317d2
movzx eax, bl
sub eax, 0x11
je 0x4317cd
sub eax, 0x91
je 0x4317cd
sub eax, 1
jne 0x4317d2
mov ecx, str.RCtrl_up
jmp 0x4317d2
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.00406890
add esp, 0x14
lea eax, [esp + 0x10]
mov ecx, esi
push 0
push 1
push eax
push 0x41
call fcn.00437190
test eax, eax
je 0x4314ab
push 0
push 0
push 0
push 0x67
mov ecx, esi
call fcn.00437190
lea eax, [esp + 0xf8]
mov dword [esi + 0x64c], 0
push eax
push str._s_up::
push dword [esp + 0x18]
call fcn.00406890
mov dword [esp + 0x30], 2
jmp 0x431746
je 0x431e56
mov dword [esp + 0x24], 1
lea eax, [esp + 0xf8]
push eax
push str._s::
push dword [esp + 0x18]
call fcn.00406890
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 0x431a5e
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x431a5e
mov dword [esp + 0x38], esi
cmp eax, 0x3a
je 0x4318cd
push 0x3a
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x431a5c
add ebx, 2
mov dword [esp + 0x54], ebx
jmp 0x4318e3
mov eax, dword [esp + 0x10]
add eax, 4
cmp word [eax], bx
je 0x431a5e
mov ebx, eax
mov dword [esp + 0x54], eax
test ebx, ebx
je 0x431a5e
mov al, byte [0x4fb9f8]
mov byte [esp + 0xf], al
cmp esi, ebx
jae 0x43194b
nop dword [eax + eax]
movzx eax, word [esi]
mov edi, eax
test eax, 0xffffff80
je 0x431910
xor edx, edx
jmp 0x43191e
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 0x43193e
cmp esi, ebx
jb 0x431900
jmp 0x431947
cmp word [esi], 0x30
setne byte [esp + 0xf]
mov edi, dword [esp + 0x18]
mov esi, ebx
nop dword [eax]
movzx eax, word [esi]
mov ebx, edi
mov edx, eax
test ax, ax
je 0x431985
mov ecx, eax
nop
movzx edx, cx
cmp cx, word [0x4fa340]
je 0x431985
movzx edx, cx
cmp cx, 0x3a
je 0x431985
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x431960
mov ecx, esi
test dx, dx
je 0x431a4f
movzx eax, word [esi + 2]
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x4319c4
cmp eax, 0x3a
jne 0x4319b3
cmp byte [esp + 0xf], 0
mov dword [esp + 0x18], esi
mov esi, edi
jne 0x431a4b
cmp eax, 0x3a
mov edi, ecx
cmovne edi, ebx
add esi, 2
mov dword [esp + 0x18], edi
jmp 0x431950
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4319d3.99
movzx eax, byte [eax + 0x432740]
jmp dword [eax*4 + 0x432720]
mov eax, 7
jmp 0x431a09
mov eax, 8
jmp 0x431a09
mov eax, 0xc
jmp 0x431a09
mov eax, 0xa
jmp 0x431a09
mov eax, 0xd
jmp 0x431a09
mov eax, 9
jmp 0x431a09
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 0x431a11
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 0x431a3f
cmp word [edi], 0x3a
cmove esi, edi
mov edi, dword [esp + 0x18]
add esi, 2
jmp 0x431950
mov edi, dword [esp + 0x18]
test edi, edi
je 0x431a5c
mov dword [esp + 0x48], edi
jmp 0x431b1a
xor ebx, ebx
push 0x4e914c
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 0x4321bf
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x431a96
cmp word [eax + 4], 0x3a
jne 0x431a96
add eax, 2
mov dword [esp + 0x18], eax
mov esi, eax
cmp eax, ecx
jbe 0x431ab4
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x431aad
cmp eax, 9
jne 0x431ab4
sub esi, 2
cmp esi, ecx
ja 0x431aa0
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x431acd
cmp eax, 9
jne 0x431ad2
add ecx, 2
jmp 0x431ac0
push 0
xor edx, edx
call fcn.004171a0
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
je 0x431af1
cmp eax, 4
je 0x4314ab
jmp 0x431af7
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 0x4321bf
mov edx, dword [esp + 0x10]
cmp edi, edx
jbe 0x4321c3
mov eax, dword [0x4f90f4]
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 0xb4], 0
jne 0x4325a2
mov eax, dword [ecx + 0x614]
test eax, eax
je 0x431b4f
cmp byte [eax], 0x1a
je 0x43250e
mov ebx, dword [esp + 0x54]
xor eax, eax
mov word [edi], ax
add edi, 4
mov dword [esp + 0x18], edi
test ebx, ebx
jne 0x431e63
movzx eax, word [edi]
test ax, ax
je 0x431bb5
mov edx, edi
cmp ax, 0x20
je 0x431b7d
cmp ax, 9
jne 0x431b86
movzx eax, word [edx + 2]
add edx, 2
jmp 0x431b71
mov eax, edx
sub eax, edi
cmp eax, 2
jb 0x431bb5
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431b94
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 0x431e5f
movzx eax, word [edx + 2]
mov ecx, eax
test ax, ax
je 0x431c23
mov edi, edx
cmp ax, 0x20
je case.0x431be8.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x431be8.34
movzx eax, byte [eax + 0x432760]
jmp dword [eax*4 + 0x432758]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x431bd0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041f4d0
add esp, 0xc
mov byte [esp + 0x14], al
test al, al
je 0x431e5f
mov bh, al
jmp 0x431c2a
or bh, 0xff
mov byte [esp + 0x14], bh
mov esi, dword [esp + 0x10]
cmp word [esi], 0
je case.0x431c58.34
cmp word [esi + 2], 0
je case.0x431c58.34
movzx eax, word [esi + 2]
nop
cmp ax, 0x20
je case.0x431c58.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x431c58.34
movzx eax, byte [eax + 0x4327c8]
jmp dword [eax*4 + 0x4327c0]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x431c40
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041f4d0
add esp, 0xc
mov byte [esp + 0x15], al
push 0x4e6604
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
add esp, 8
test eax, eax
mov al, byte [esp + 0x15]
setne bl
mov cl, al
dec cl
cmp cl, 5
ja 0x431cac
cmp al, 3
jne 0x431cb2
add al, 0x66
cmp al, 5
ja 0x431cb6
mov cl, 1
jmp 0x431cb8
xor cl, cl
mov al, bh
dec al
cmp al, 5
ja 0x431cc5
cmp bh, 3
jne 0x431ccd
mov al, bh
add al, 0x66
cmp al, 5
ja 0x431cd1
mov al, 1
jmp 0x431cd3
xor al, al
mov byte [esp + 0x16], al
test cl, cl
jne 0x431ce4
mov byte [esp + 0x17], 1
test al, al
jne 0x431ce9
mov byte [esp + 0x17], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431cf0
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x431d17
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4e939c
jne 0x431d1c
mov eax, 0x4cfc40
push dword [esp + 0x10]
test bl, bl
mov ecx, 0x4e8fac
push eax
mov eax, 0x4cfc40
cmove eax, ecx
push eax
push 0x4e93a0
lea eax, [esp + 0x108]
push 0x20
push eax
call fcn.004b1470
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 0x431d94
mov word [esp + edi*2 + 0x88], ax
xor edx, edx
mov dword [esp + 0x24], edx
cmp word [esp + 0x88], dx
jne 0x431605
mov al, byte [esp + 0x14]
cmp al, 0xd
je 0x431e39
cmp al, 0x13
jne 0x43185a
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 0x431dd9
xor edi, edi
jmp 0x431deb
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 0x431e56
movzx esi, ax
test esi, 0xffffff80
je 0x431e14
xor eax, eax
jmp 0x431e1c
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 0x431854
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 0x431854
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 0x431ea8
push 0
push 0xff
push 0
push 0x67
mov ecx, esi
mov byte [esi + 0x254], 0
call fcn.00437190
test eax, eax
je 0x4314ab
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.00434710
test eax, eax
je 0x4314ab
test ebx, ebx
je 0x431fb2
cmp word [ebx], 0
je 0x43254d
cmp byte [esp + 0xf], 0
mov eax, 0x4cfc40
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.00418200
add esp, 0x14
test eax, eax
je 0x4314ab
movzx eax, word [edi]
test ax, ax
je 0x431601
cmp byte [esp + 0xf], 0
je 0x431f89
cmp ax, 0x20
je 0x431f30
cmp ax, 9
jne 0x431f39
movzx eax, word [edi + 2]
add edi, 2
jmp 0x431f24
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov ecx, ebx
call fcn.004348c0
test eax, eax
je 0x4314ab
mov eax, dword [ebx + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x431f69
cmp al, 0x20
jbe 0x432528
cmp al, 0x21
je 0x432528
cmp al, 0x69
jb 0x431f7d
cmp al, 0x6b
jbe 0x432528
cmp al, 0x71
jb 0x431f89
cmp al, 0x73
jbe 0x432528
push 0
push 0
push 0
push 0x67
mov ecx, ebx
call fcn.00437190
test eax, eax
je 0x4314ab
mov eax, dword [ebx + 0x614]
mov dword [eax + 0xc], 1
jmp 0x431601
xor esi, esi
cmp word [edi], si
je 0x4320c0
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 0x431fe0
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffe
jmp 0x43209a
push str.ShiftAltTab
push edi
call ebx
add esp, 8
test eax, eax
jne 0x431ffd
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffd
jmp 0x43209a
push str.AltTabMenu
push edi
call ebx
add esp, 8
test eax, eax
jne 0x43201a
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffc
jmp 0x43209a
push str.AltTabAndMenu
push edi
call ebx
add esp, 8
test eax, eax
jne 0x432034
mov ebx, dword [esp + 0x1c]
mov esi, 0x7ffb
jmp 0x43209a
push str.AltTabMenuDismiss
push edi
call ebx
mov ebx, dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x43204e
mov esi, 0x7ffa
jmp 0x43209a
xor esi, esi
mov ecx, ebx
push esi
push esi
push esi
push esi
push esi
push esi
push edi
call fcn.004348c0
test eax, eax
je 0x4314ab
mov eax, dword [ebx + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x43207a
cmp al, 0x20
jbe 0x432528
cmp al, 0x21
je 0x432528
cmp al, 0x69
jb 0x43208e
cmp al, 0x6b
jbe 0x432528
cmp al, 0x71
jb 0x43209a
cmp al, 0x73
jbe 0x432528
push 0
push 0
push 0
push 0x67
mov ecx, ebx
call fcn.00437190
test eax, eax
je 0x4314ab
mov eax, dword [ebx + 0x614]
mov dword [eax + 0xc], 1
jmp 0x4320c4
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x5f]
push eax
lea edx, [esp + 0x84]
call fcn.00417b40
mov edi, eax
add esp, 4
test edi, edi
je 0x432149
test si, si
je 0x4320f0
mov word [edi + 6], si
jmp 0x431601
mov eax, dword [edi + 0x20]
test eax, eax
je 0x432110
mov ecx, dword [0x4fc3b4]
nop dword [eax]
cmp dword [eax + 4], ecx
je 0x432566
mov eax, dword [eax + 8]
test eax, eax
jne 0x432100
push dword [esp + 0x80]
mov ecx, edi
push dword [ebx + 0x624]
call fcn.00417090
test eax, eax
je 0x432589
cmp byte [esp + 0x5f], 0
jne 0x432140
cmp byte [0x4fba6f], 0
je 0x431601
mov byte [edi + 0x14], 1
jmp 0x431601
mov ecx, dword [ebx + 0x624]
mov edx, esi
push 0
push dword [esp + 0x84]
push dword [ecx + 4]
call fcn.00416650
add esp, 0xc
test eax, eax
jne 0x431601
cmp dword [esp + 0x58], 3
jne 0x4314ab
cmp dword [ebx + 0xb00], eax
jne 0x431601
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.004b1470
push 0
push 0
xorps xmm3, xmm3
lea ecx, [esp + 0x150]
mov edx, 0x10000
call fcn.004b7b40
add esp, 0x18
jmp 0x431601
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
cmp word [edx + ebx*2 - 2], 0x3a
jne 0x432290
cmp ebx, 1
je 0x4325b6
movzx eax, word [edx]
mov esi, edx
test ax, ax
je 0x432224
mov di, word [0x4fa348]
mov ecx, eax
nop
cmp cx, 0x20
je 0x432290
cmp cx, 9
je 0x432290
cmp cx, di
je 0x432290
cmp cx, word [0x4fa340]
je 0x432290
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x4321f0
cmp word [edx + ebx*2 - 4], 0x3a
jne 0x432231
cmp ebx, 2
ja 0x432290
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 0x432281
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x432281
mov eax, dword [eax + 0x10]
test eax, eax
je 0x432281
cmp byte [eax], 0x75
jne 0x432281
push 0
push 0
push 0
push 0x76
mov ecx, ebx
call fcn.00437190
test eax, eax
je 0x4314ab
jmp 0x431601
push 0
push dword [esp + 0x14]
mov ecx, ebx
call fcn.00434710
jmp 0x4322de
cmp word [edx], 0x23
mov ebx, dword [esp + 0x1c]
jne 0x4322bd
mov esi, dword [ebx + 0x250]
mov ecx, ebx
push edx
call fcn.00432ca0
test eax, eax
je 0x4314ab
cmp eax, 3
je 0x4315f1
mov edx, dword [esp + 0x10]
movzx eax, word [edx]
cmp eax, 0x7b
je 0x4322eb
cmp eax, 0x7d
je 0x4322eb
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov ecx, ebx
call fcn.004348c0
test eax, eax
je 0x4314ab
jmp 0x431601
cmp eax, 0x7b
mov ecx, ebx
push 0
setne al
push 0
add al, 0x77
push 0
movzx eax, al
push eax
call fcn.00437190
test eax, eax
je 0x4314ab
mov ebx, dword [esp + 0x10]
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x432310
cmp eax, 9
je 0x432310
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
cmp word [ebx], 0
je 0x431605
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x432336
sub ebx, ecx
mov ecx, dword [esp + 0x1c]
sar ebx, 1
mov dword [esp + 0x30], ebx
mov dword [ecx + 0x64c], 0
jmp 0x430df6
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.00437190
lea eax, [esp + 0xb8]
push eax
push str.Blind_s_Up
push dword [esp + 0x18]
call fcn.00406890
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x1c]
add esp, 0xc
push 0
push 1
push eax
push 0x41
call fcn.00437190
mov ecx, dword [esp + 0x1c]
push 0
push 0
push 0
push 0x67
call fcn.00437190
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 0x432423
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 0x430520
push dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
push str.Continuation_section_too_long.
call fcn.0044ec90
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, 0x4e9228
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.0044ec90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x2178]
mov ecx, ebx
push eax
push 0x4e9228
call fcn.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, ebx
push 0x4e3bcc
call fcn.0044ec90
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.0044ec90
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.0044ec90
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.0044ec90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push 0x4e91c4
call fcn.0044ec90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp word [esp + 0x2178], 0
je 0x43266d
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 0x43264b
push eax
test dl, dl
mov ecx, 0x4e9228
mov eax, str.Missing___
cmove eax, ecx
mov ecx, edi
push eax
call fcn.0044ec90
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.004348c0
test eax, eax
je 0x4314ab
mov dword [edi + 0x250], esi
cmp dword [edi + 0x28], 0
je 0x432693
cmp dword [esp + 0x74], 0
jne 0x432693
lea eax, [edi + 0x40]
mov ecx, edi
push eax
push str.Missing___
call fcn.0044ec90
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