Function at 0x42fc00
Capabilities:
Enumerate pe sections
Get keyboard layout
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1a18c
call fcn.004cc6a0
push ebx
xor eax, eax
mov byte [esp + 0x10], 0
mov word [esp + 0x2178], ax
mov ebx, ecx
mov ecx, dword [0x4fb610]
lea eax, [esp + 0xa180]
push esi
push edi
push dword [ebp + 8]
mov dword [esp + 0x18], eax
dec ecx
lea eax, [esp + 0x12194]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
xor eax, eax
push eax
mov word [esp + 0x6e], ax
mov word [esp + 0x74], ax
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xa190]
push ecx
push eax
mov dword [esp + 0x8c], ecx
mov dword [ebx + 0x24c], ecx
call fcn.004320a0
push 2
push 0x4e8088
push dword [esp + 0x1c]
mov esi, 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 0x42fca8
mov eax, dword [esp + 0x14]
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x30], esi
mov word [eax], cx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x56]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x48], edx
mov dh, byte [esp + 0x19]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x38]
mov byte [esp + 0x19], dh
mov dh, byte [esp + 0x1a]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0x1a], dh
mov dh, byte [esp + 0x1b]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x12190]
mov byte [esp + 0x1b], dh
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
mov dword [esp + 0x8c], eax
cmp esi, 0xffffffff
je 0x431d1b
mov eax, dword [esp + 0x74]
push 0xc
inc eax
mov dword [ebx + 0x64c], 0
push str.CommentFlag
push ecx
mov dword [ebx + 0x250], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x42fd56
push dword [esp + 0x14]
mov ecx, ebx
call fcn.004323c0
test eax, eax
je 0x43127b
mov ecx, dword [esp + 0x24]
xor ebx, ebx
mov byte [esp + 0x84], 0
jmp 0x42fd76
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], esi
nop
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
push dword [ebp + 8]
inc dword [esp + 0x78]
push ebx
push ecx
push ecx
call fcn.004320a0
mov dword [esp + 0x44], eax
test eax, eax
je 0x42fe4a
cmp eax, 0xffffffff
je 0x42fe4a
test ebx, ebx
jne 0x42fe4a
push 2
push 0x4e80ac
push dword [esp + 0x2c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x42fe18
cmp byte [esp + 0x2f], al
jne 0x42fdd2
cmp word [ecx + 4], 0x3a
jne 0x42fdd2
cmp word [ecx + 6], 0x3a
je 0x42fe23
mov eax, dword [esp + 0x44]
sub eax, 2
mov byte [esp + 0x2f], 0
mov dword [esp + 0x44], eax
lea eax, [eax*2 + 2]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x50]
add esp, 0xc
mov ecx, dword [esp + 0x24]
call fcn.0042a670
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x44], eax
cmp word [ecx], 0
je 0x42fd76
jmp 0x42fe23
cmp byte [esp + 0x2f], 0
jne 0x42fd76
push 2
push 0x4e8088
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x42fe46
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x2f], 1
jmp 0x42fd76
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x2f], 0
je 0x42fe63
cmp eax, 0xffffffff
je 0x43058c
mov ecx, dword [esp + 0x24]
jmp 0x42fd76
test ebx, ebx
jne 0x43034f
mov ecx, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x43058c
cmp word [ecx], 0x28
jne 0x430097
cmp word [ecx + 2], 0x3a
je 0x430097
cmp word [ecx + eax*2 - 2], 0x3a
je 0x430097
mov al, byte [0x4fab0a]
lea esi, [ecx + 2]
mov ebx, 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x38], ebx
mov byte [esp + 0x52], al
mov byte [esp + 0x51], bl
mov byte [esp + 0x53], 0
mov byte [esp + 0x54], 0
mov byte [esp + 0x55], bl
mov dword [esp + 0xa0], 0xa
mov dword [esp + 0x78], ebx
nop word [eax + eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x42feed
cmp eax, 9
jne 0x42fef2
add esi, 2
jmp 0x42fee0
test ax, ax
je 0x430086
nop dword [eax + eax]
mov ebx, esi
test esi, esi
je 0x42ff41
movzx eax, word [esi]
test ax, ax
je 0x42ff41
mov edi, eax
mov ecx, 0x4e5614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x42ff58
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x42ff20
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x42ff10
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42ff46
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 0x42ffc9
push 0xf
lea eax, [esi + 8]
push eax
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0xa0]
xor eax, eax
mov word [esp + 0xbe], ax
push 1
call fcn.004b2810
lea edx, [esp + 0xa4]
add esp, 4
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x42ffb1
sub edx, ecx
sar edx, 1
mov dword [esp + 0x78], edx
jmp 0x430059
push 5
push 0x4e8154
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x42ffea
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x52]
jmp 0x430059
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 0x43000b
cmp word [esi + 0xa], 0x30
setne byte [esp + 0x51]
jmp 0x430059
movzx eax, word [esi]
test ax, ax
je 0x430059
mov ecx, eax
movzx eax, cx
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x430027.38
movzx eax, byte [eax + 0x431de0]
jmp dword [eax*4 + 0x431dc8]
mov byte [esp + 0x53], 1
jmp case.0x430027.38
mov byte [esp + 0x54], 1
jmp case.0x430027.38
mov byte [esp + 0x55], 0
jmp case.0x430027.38
mov dword [esp + 0x38], 2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x430015
mov word [ebx], di
mov esi, ebx
mov eax, edi
cmp ax, 0x20
je 0x43006c
cmp ax, 9
jne 0x430075
movzx eax, word [esi + 2]
add esi, 2
jmp 0x430060
test ax, ax
jne 0x42ff00
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
mov byte [esp + 0x84], 1
jmp 0x42fd70
cmp eax, 0xffffffff
je 0x43058c
xor ebx, ebx
test eax, eax
je 0x42fd76
mov ebx, dword [esp + 0x24]
cmp word [ebx + eax*2 - 2], 0x3a
jne 0x4300c0
cmp word [ebx], 0x2c
jne 0x43058c
movzx esi, word [ebx]
test esi, 0xffffff80
jne 0x4300da
push 2
push esi
call edi
add esp, 8
test eax, eax
je 0x4300da
and esi, 0xffffffdf
cmp esi, 0x41
je 0x4302a5
cmp esi, 0x4f
je 0x43024d
movzx eax, word [ebx]
cmp eax, 0x3a
je 0x4300fe
cmp eax, 0x2b
je 0x4300fe
cmp eax, 0x2d
jne 0x430108
cmp word [ebx + 2], ax
je 0x43058c
push eax
push str.____:.___
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x43058c
push 0x4e80f4
push ebx
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov edi, eax
add esp, 8
xor ebx, ebx
test edi, edi
je 0x430301
mov eax, dword [esp + 0x24]
cmp word [eax], 0x3a
jne 0x4301a2
lea esi, [eax + 2]
movzx eax, word [esi]
test ax, ax
je 0x430198
mov ecx, eax
cmp cx, 0x3a
je 0x430198
movzx eax, cx
test eax, 0xffffff80
jne 0x430174
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 0x43018a
movzx eax, word [esi]
push eax
push 0x4e80fc
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x4301a2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x430151
cmp word [esi], 0x3a
je 0x43058c
mov ecx, dword [esp + 0x24]
cmp word [ecx], 0x2c
jne 0x4301fa
lea esi, [ecx + 2]
nop
movzx eax, word [esi]
cmp eax, 0x20
je 0x4301bd
cmp eax, 9
jne 0x4301c2
add esi, 2
jmp 0x4301b0
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
push 2
push 0x4e80f4
push esi
call edi
add esp, 0xc
test eax, eax
je 0x43058c
push 3
lea eax, [esi - 2]
push 0x4e5604
push eax
call edi
add esp, 0xc
test eax, eax
je 0x43058c
jmp 0x430301
mov eax, ecx
cmp ecx, edi
jae 0x43020d
cmp word [eax], 0x22
je 0x430215
add eax, 2
cmp eax, edi
jb 0x430200
cmp eax, edi
je 0x43058c
movzx eax, word [edi + 4]
lea ecx, [edi + 4]
test ax, ax
je 0x43058c
mov edx, eax
nop word [eax + eax]
cmp dx, 0x22
je 0x430301
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x430230
jmp 0x43058c
movzx esi, word [ebx + 2]
test esi, 0xffffff80
jne 0x430268
push 2
push esi
call edi
add esp, 8
test eax, eax
je 0x430268
and esi, 0xffffffdf
cmp si, 0x52
jne 0x43058c
movzx eax, word [ebx + 4]
lea ecx, [ebx + 4]
cmp eax, 0x20
je 0x430287
cmp eax, 9
jne 0x43058c
xor ebx, ebx
nop dword [eax]
cmp ax, 0x20
je 0x43029c
cmp ax, 9
jne 0x4302ea
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x430290
push 3
push 0x4e80b4
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x43058c
movzx eax, word [ebx + 6]
lea ecx, [ebx + 6]
cmp eax, 0x20
je 0x4302d3
cmp eax, 9
jne 0x43058c
xor ebx, ebx
cmp ax, 0x20
je 0x4302e1
cmp ax, 9
jne 0x4302ea
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x4302d5
push eax
push str.____:
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x43058c
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
lea eax, [edi + esi]
cmp eax, 0x4000
jae 0x431bb8
mov ecx, dword [esp + 0x24]
cmp word [ecx], 0x2c
je 0x43032f
mov eax, dword [esp + 0x14]
mov edx, 0x20
mov word [eax + esi*2], dx
inc esi
lea eax, [edi*2 + 2]
push eax
mov eax, dword [esp + 0x18]
push ecx
lea eax, [eax + esi*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, edi
jmp 0x42fd66
cmp eax, 0xffffffff
je 0x431d03
mov ecx, dword [esp + 0x24]
cmp eax, 0xfffffffe
je 0x42fd76
mov edi, ecx
cmp word [edi], 0x29
jne 0x4303d8
mov edx, edi
xor ebx, ebx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x430374
sub edx, ecx
lea eax, [edi - 2]
sar edx, 1
lea eax, [eax + edx*2]
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43039d
cmp ecx, 9
jne 0x4303a7
cmp eax, edi
je 0x4303ba
sub eax, 2
dec edx
jmp 0x430390
xor ecx, ecx
add edi, 2
dec edx
mov word [eax + 2], cx
mov dword [esp + 0x44], edx
jmp 0x4304fd
cmp ecx, 0x20
je 0x4303c4
cmp ecx, 9
jne 0x4303cb
xor ecx, ecx
xor edx, edx
mov word [eax], cx
add edi, 2
dec edx
mov dword [esp + 0x44], edx
jmp 0x4304fd
cmp byte [esp + 0x51], 0
mov esi, dword [esp + 0x24]
je 0x4303f0
mov edx, eax
mov ecx, esi
call fcn.0042a6e0
mov dword [esp + 0x44], eax
cmp byte [esp + 0x52], 0
je 0x430404
mov edx, eax
mov ecx, esi
call fcn.0042a670
mov dword [esp + 0x44], eax
xor esi, esi
cmp byte [esp + 0x53], 0
je 0x430444
mov ax, word [0x4f93c8]
lea edx, [esp + 0x64]
mov ecx, dword [esp + 0x24]
push esi
push esi
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x74], ax
mov word [esp + 0x78], ax
mov word [esp + 0x7a], ax
lea eax, [esp + 0x78]
push 1
push eax
call fcn.004b0de0
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x54], 0
je 0x43048b
mov ax, word [0x4f93c8]
lea edx, [esp + 0x64]
mov cx, word [0x4f93cc]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x78], ax
lea eax, [esp + 0x78]
mov word [esp + 0x74], cx
mov word [esp + 0x7a], cx
mov ecx, dword [esp + 0x34]
push 1
push eax
call fcn.004b0de0
add esp, 0x18
add esi, eax
cmp byte [esp + 0x55], 0
je 0x4304d2
mov ax, word [0x4f93c8]
lea edx, [esp + 0x64]
mov cx, word [0x4f93d0]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov word [esp + 0x78], ax
lea eax, [esp + 0x78]
mov word [esp + 0x74], cx
mov word [esp + 0x7a], cx
mov ecx, dword [esp + 0x34]
push 1
push eax
call fcn.004b0de0
add esp, 0x18
add esi, eax
test esi, esi
je 0x4304f5
mov edx, dword [esp + 0x24]
lea ecx, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4304e0
sub edx, ecx
sar edx, 1
mov dword [esp + 0x44], edx
jmp 0x4304f9
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
lea eax, [ecx + edx]
add eax, esi
cmp eax, 0x4001
jae 0x431bb8
mov eax, dword [esp + 0x80]
inc eax
mov dword [esp + 0x80], eax
cmp eax, 1
jle 0x43055b
test ecx, ecx
je 0x43055b
cmp edi, dword [esp + 0x24]
jne 0x43055b
lea eax, [ecx*2 + 2]
push eax
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + esi*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x50]
add esp, 0xc
add esi, dword [esp + 0x78]
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x24]
test edx, edx
je 0x42fd70
lea eax, [edx*2 + 2]
push eax
mov eax, dword [esp + 0x18]
push edi
lea eax, [eax + esi*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [esp + 0x44]
jmp 0x42fd66
mov word [ebx], di
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
test ebx, ebx
je 0x430db7
cmp word [esp + 0x2180], 0
je 0x430752
mov eax, dword [esp + 0x28]
mov esi, dword [edi + 0x250]
mov dword [edi + 0x250], eax
mov eax, dword [esp + 0x14]
cmp word [eax], 0x7b
je 0x43062b
cmp byte [esp + 0x12], 0
jne 0x43062b
cmp dword [esp + 0x4c], 0
jne 0x431bf6
cmp dword [edi + 0x28], 0
je 0x4305ef
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
je 0x431bd0
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [esp + 0x2198]
mov ecx, edi
push eax
call fcn.00433f80
test eax, eax
je 0x43127b
xor eax, eax
mov dword [edi + 0x64c], 0
mov word [esp + 0x2180], ax
jmp 0x43074c
mov ebx, dword [esp + 0x4c]
mov eax, ebx
sub eax, 0
je 0x430678
sub eax, 1
je 0x430655
sub eax, 1
jne 0x4306e0
lea eax, [esp + 0x2180]
mov ecx, edi
push eax
call fcn.0043c570
jmp 0x430664
lea eax, [esp + 0x2180]
mov ecx, edi
push eax
call fcn.0043be10
test eax, eax
je 0x43127b
xor eax, eax
mov word [esp + 0x2180], ax
jmp 0x4306ee
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
jne 0x431c0c
lea eax, [esp + 0x240]
mov ecx, edi
push eax
lea eax, [esp + 0x2184]
push eax
call fcn.0043b350
test eax, eax
je 0x43127b
cmp byte [esp + 0x12], 0
je 0x4306e0
push 0
push 0
push 0
push 0x77
mov ecx, edi
call fcn.00436750
test eax, eax
je 0x43127b
xor eax, eax
mov dword [edi + 0x64c], 0
mov word [esp + 0x2180], ax
jmp 0x43074c
xor eax, eax
mov word [esp + 0x2180], ax
test ebx, ebx
je 0x43074c
mov bl, byte [esp + 0x12]
test bl, bl
jne 0x43074c
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x4306fa
cmp eax, 9
je 0x4306fa
test ax, ax
jne 0x43071f
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x250], esi
jmp 0x430dbf
mov ebx, ecx
lea edx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x430724
sub ebx, edx
sar ebx, 1
mov dword [esp + 0x30], ebx
lea eax, [ebx*2 + 2]
push eax
push ecx
push dword [esp + 0x1c]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [edi + 0x250], esi
mov eax, dword [esp + 0x14]
movzx eax, word [eax]
mov edx, eax
cmp eax, 0x7d
jne 0x430892
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x430892
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
jne 0x430892
cmp dword [edi + 0x244], 0
je 0x4307bb
mov eax, dword [edi + 0x248]
mov dword [edi + 0x244], 0
test eax, eax
je 0x430849
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [edi + 0x248], 0
jmp 0x430849
lea eax, [ecx - 1]
mov dword [edi + 0x28], eax
mov ebx, dword [edi + eax*4 + 0x2c]
mov esi, dword [ebx + 0x10]
sub esi, 1
js 0x43081d
mov edi, esi
shl edi, 4
mov eax, dword [ebx + 0xc]
cmp dword [eax + edi + 0xc], 1
jne 0x430811
cmp esi, dword [ebx + 0x1c]
jl 0x4307ee
push dword [eax + edi + 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 0x430811
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 0x4307d2
mov edi, dword [esp + 0x20]
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 0x430844
xor ecx, ecx
mov word [eax], cx
jmp 0x430849
xor eax, eax
mov word [esi], ax
mov ebx, dword [esp + 0x14]
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x43084d
cmp eax, 9
je 0x43084d
mov dword [esp + 0x14], ebx
cmp word [ebx], 0
je 0x430db7
lea ecx, [ebx + 2]
nop
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x430870
sub ebx, ecx
mov dword [edi + 0x64c], 0
sar ebx, 1
mov dword [esp + 0x30], ebx
jmp 0x430594
cmp dword [edi + 0x244], 0
je 0x430986
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
jne 0x430986
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
push 3
push 0x4e824c
push dword [esp + 0x1c]
call ebx
add esp, 0xc
test eax, eax
je 0x4308e3
push 3
push 0x4e8254
push dword [esp + 0x1c]
call ebx
add esp, 0xc
test eax, eax
jne 0x431c22
mov esi, dword [esp + 0x14]
add esi, 6
nop word [eax + eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x4308fd
cmp eax, 9
jne 0x430902
add esi, 2
jmp 0x4308f0
test ax, ax
je 0x43091b
cmp eax, 0x7b
jne 0x431c22
cmp word [esi + 2], 0
jne 0x431c22
mov ecx, dword [edi + 0x248]
lea edx, [esp + 0x2180]
sub edx, ecx
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x430930
lea eax, [esp + 0x2180]
push 0x2e
push eax
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x4c], 0
mov ax, word [eax]
mov word [ecx + 2], ax
cmp word [esi], 0x7b
mov ecx, dword [edi + 0x250]
sete bl
mov dword [esp + 0x28], ecx
mov byte [esp + 0x12], bl
jmp 0x430dc3
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
test dx, dx
je 0x430ac9
mov esi, edx
nop dword [eax]
mov ecx, 0x4e7f58
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x4309d6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4309b0
movzx eax, word [ebx + 2]
add ebx, 2
mov esi, eax
test ax, ax
jne 0x4309a0
jmp 0x430ac9
cmp word [ebx], 0x28
jne 0x430ac9
mov esi, dword [esp + 0x14]
cmp ebx, esi
je 0x430ac9
mov edi, ebx
mov edx, 0x4e7f94
sub edi, esi
mov ecx, esi
sar edi, 1
push 0xffffffffffffffff
push edi
call fcn.004b06c0
add esp, 8
test eax, eax
je 0x430ac5
mov esi, dword [esp + 0x38]
mov edx, str.WHILE
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.004b06c0
add esp, 8
test eax, eax
je 0x430ac5
cmp word [ebx + 2], 0x3a
je 0x430ac5
mov ecx, ebx
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x430a40
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 + 0x12], bl
jne 0x430a7a
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042a6e0
movzx ecx, word [esi + eax*2 - 2]
cmp cx, 0x29
jne 0x430abf
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2180]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x430a90
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], 0
mov ecx, dword [ecx + 0x250]
mov dword [esp + 0x28], ecx
jmp 0x430dc3
mov edi, dword [esp + 0x20]
jmp 0x430acd
mov edi, dword [esp + 0x20]
mov bl, byte [esp + 0x12]
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
jne 0x431039
mov esi, dword [esp + 0x14]
push 5
push str.Class
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x430bb3
movzx eax, word [esi + 0xa]
cmp eax, 0x20
je 0x430b0e
cmp eax, 9
jne 0x430bb3
lea edi, [esi + 0xc]
movzx eax, word [edi]
cmp eax, 0x20
je 0x430b1e
cmp eax, 9
jne 0x430b23
add edi, 2
jmp 0x430b11
push eax
push 0x4e7f58
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
jne 0x430baf
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x430b40
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 + 0x12], bl
jne 0x430b75
xor eax, eax
mov ecx, esi
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.0042a6e0
lea ecx, [esp + 0x2180]
sub ecx, edi
nop
movzx eax, word [edi]
lea edi, [edi + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x430b80
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], 1
mov ecx, dword [ecx + 0x250]
mov dword [esp + 0x28], ecx
jmp 0x430dc3
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x28], 0
je 0x431039
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
mov ecx, eax
test ecx, 0xffffff80
je 0x430bd0
jmp 0x430be6
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 0x430bf8
cmp cx, 0x5f
je 0x430bf8
cmp cx, 0x7f
ja 0x430bf8
cmp cx, 0x2e
jne 0x430bfd
add esi, 2
jmp 0x430bc1
cmp esi, dword [esp + 0x14]
jbe 0x430d3b
movzx eax, cx
nop word [eax + eax]
cmp ax, 0x20
je 0x430c1c
cmp ax, 9
jne 0x430c25
movzx eax, word [esi + 2]
add esi, 2
jmp 0x430c10
cmp ax, 0x3a
jne 0x430c54
cmp word [esi + 2], 0x3d
jne 0x430d3b
push 0
push dword [esp + 0x18]
mov ecx, edi
call fcn.0043c740
test eax, eax
je 0x43127b
mov edx, dword [esp + 0x1c]
jmp 0x430dbf
test ax, ax
je 0x430c74
cmp ax, 0x5b
je 0x430c74
cmp ax, 0x7b
jne 0x430d3b
cmp word [esi + 2], 0
jne 0x430d3b
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x430c80
mov esi, dword [esp + 0x14]
sub ecx, edx
sar ecx, 1
movzx eax, word [esi + ecx*2 - 2]
cmp eax, 0x7b
sete bl
mov byte [esp + 0x12], bl
jne 0x430cff
dec ecx
cmp word [esi], 0
je 0x430cff
cmp ecx, 0xffffffff
jne 0x430cc4
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x430cb5
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x14]
lea eax, [eax + ecx*2]
add eax, 0xfffffffe
nop
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x430cdd
cmp ecx, 9
jne 0x430ce8
cmp eax, dword [esp + 0x14]
je 0x430cf0
sub eax, 2
jmp 0x430cd0
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x430cff
cmp ecx, 0x20
je 0x430cfa
cmp ecx, 9
jne 0x430cff
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2180]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x430d10
mov ecx, dword [edi + 0x250]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], 2
jmp 0x430dc3
push 6
push str.Static
push dword [esp + 0x1c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x430d70
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x430d65
cmp ecx, 9
jne 0x430d70
push 1
add eax, 0xe
push eax
jmp 0x430c3c
cmp word [eax], 0x23
jne 0x431c38
mov esi, dword [edi + 0x250]
mov ecx, edi
push eax
call fcn.004323c0
test eax, eax
je 0x43127b
cmp eax, 3
jne 0x431c38
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x24c], eax
mov dword [edi + 0x250], esi
jmp 0x430dbf
test eax, eax
je 0x43127b
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x12]
mov ecx, dword [esp + 0x28]
mov bh, byte [esp + 0x18]
mov eax, edx
test bh, bh
je case.0x430e96.4
mov esi, dword [esp + 0x5c]
inc edx
mov dword [esp + 0x1c], edx
mov edi, ecx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov ch, bl
mov cl, byte [esp + 0x13]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], edx
mov dh, cl
mov byte [esp + 0x13], cl
mov cl, byte [esp + 0x19]
mov byte [esp + 0x12], bl
mov bl, cl
mov byte [esp + 0x19], cl
mov cl, byte [esp + 0x1a]
mov byte [esp + 0x1a], cl
mov dl, cl
mov cl, byte [esp + 0x1b]
mov byte [esp + 0x18], bh
mov byte [esp + 0x3d], ch
mov byte [esp + 0x3e], dh
mov dword [esp + 0x5c], esi
mov dword [esp + 0x70], esi
mov byte [esp + 0x3f], dl
mov byte [esp + 0x1b], cl
mov byte [esp + 0x37], cl
cmp eax, 9
ja case.0x430e96.4
mov esi, dword [esp + 0x58]
movzx eax, byte [eax + 0x431e34]
mov byte [esp + 0x13], dh
mov dh, bl
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x40]
mov byte [esp + 0x19], dh
mov dh, dl
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x70]
mov byte [esp + 0x1a], dh
mov dh, cl
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x30]
mov byte [esp + 0x18], bh
mov dword [esp + 0x28], edi
mov byte [esp + 0x12], ch
mov byte [esp + 0x1b], dh
mov dword [esp + 0x1c], esi
jmp dword [eax*4 + 0x431e20]
mov eax, dword [esp + 0x14]
test dl, dl
mov ecx, dword [0x4e5158]
mov esi, dword [esp + 0x20]
push 0
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov cx, word [0x4e515c]
push 1
mov word [eax + 4], cx
lea eax, [esp + 0x1c]
push eax
setne al
mov ecx, esi
add al, 0xc5
movzx eax, al
push eax
call fcn.00436750
cmp byte [esp + 0x37], 0
je 0x430f53
lea eax, [esp + 0xc0]
push eax
push str.if_not_GetKeyState___s__
push dword [esp + 0x1c]
call fcn.00406560
mov dword [esp + 0x28], 9
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x49]
mov dword [esp + 0x54], edx
mov dh, bl
mov byte [esp + 0x1e], al
mov eax, dword [esp + 0x64]
mov byte [esp + 0x25], dh
mov dh, byte [esp + 0x4b]
mov dword [esp + 0x58], eax
mov al, byte [esp + 0x4a]
mov byte [esp + 0x26], dh
mov dh, byte [esp + 0x43]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x24], bh
mov dword [esp + 0x34], edi
mov dword [esp + 0x68], eax
mov byte [esp + 0x27], dh
jmp 0x431036
mov esi, dword [esp + 0x20]
movzx eax, bh
mov ecx, 0x4cec30
sub eax, 0x12
je 0x430f6c
sub eax, 0x92
je 0x430f6c
sub eax, 1
jne 0x430f8c
movzx eax, bl
sub eax, 0x11
je 0x430f87
sub eax, 0x91
je 0x430f87
sub eax, 1
jne 0x430f8c
mov ecx, str.RCtrl_up
jmp 0x430f8c
mov ecx, str.LCtrl_up
lea eax, [esp + 0xc0]
mov dword [esi + 0x64c], 0
push eax
lea eax, [esp + 0x94]
push eax
push ecx
push str.Blind_s_s_s_DownR
push dword [esp + 0x24]
call fcn.00406560
add esp, 0x14
lea eax, [esp + 0x14]
mov ecx, esi
push 0
push 1
push eax
push 0x41
call fcn.00436750
test eax, eax
je 0x43127b
push 0
push 0
push 0
push 0x67
mov ecx, esi
call fcn.00436750
lea eax, [esp + 0x100]
mov dword [esi + 0x64c], 0
push eax
push str._s_up::
push dword [esp + 0x1c]
call fcn.00406560
mov dword [esp + 0x28], 2
jmp 0x430f00
je 0x4315c8
mov dword [esp + 0x1c], 1
lea eax, [esp + 0x100]
push eax
push str._s::
push dword [esp + 0x1c]
call fcn.00406560
mov dword [esp + 0x3c], eax
add esp, 0xc
mov esi, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x40], ebx
cmp word [esi], 0x3a
jne 0x4311e9
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x4311e9
mov dword [esp + 0x48], esi
cmp eax, 0x3a
je 0x431083
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 + 0x58], ebx
jmp 0x431099
mov eax, dword [esp + 0x14]
add eax, 4
cmp word [eax], bx
je 0x4311e9
mov ebx, eax
mov dword [esp + 0x58], eax
test ebx, ebx
je 0x4311e9
mov al, byte [0x4fa924]
mov edi, esi
mov byte [esp + 0x13], al
cmp esi, ebx
jae 0x4310e6
movzx esi, word [edi]
test esi, 0xffffff80
jne 0x4310ce
push 2
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
test eax, eax
je 0x4310ce
and esi, 0xffffffdf
add edi, 2
cmp si, 0x58
je 0x4310dd
cmp edi, ebx
jb 0x4310b0
jmp 0x4310e6
cmp word [edi], 0x30
setne byte [esp + 0x13]
mov esi, ebx
mov bx, word [0x4f93c8]
nop
movzx eax, word [esi]
mov ecx, eax
test ax, ax
je 0x431121
mov edx, eax
nop dword [eax]
movzx ecx, dx
cmp dx, bx
je 0x43112a
movzx ecx, dx
cmp dx, 0x3a
je 0x431121
movzx eax, word [esi + 2]
add esi, 2
mov edx, eax
mov ecx, eax
test ax, ax
jne 0x431100
test cx, cx
je 0x4311db
movzx eax, word [esi + 2]
lea edi, [esi + 2]
cmp cx, 0x3a
jne 0x431158
cmp eax, 0x3a
jne 0x4311d3
cmp byte [esp + 0x13], 0
mov eax, esi
mov dword [esp + 0x40], eax
mov esi, edi
jne 0x4311df
add esi, 2
jmp 0x4310f0
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x431167.99
movzx eax, byte [eax + 0x431e60]
jmp dword [eax*4 + 0x431e40]
mov eax, 7
jmp 0x43119d
mov eax, 8
jmp 0x43119d
mov eax, 0xc
jmp 0x43119d
mov eax, 0xa
jmp 0x43119d
mov eax, 0xd
jmp 0x43119d
mov eax, 9
jmp 0x43119d
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 0x4311a5
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 0x4311d3
cmp word [edi], 0x3a
cmove esi, edi
add esi, 2
jmp 0x4310f0
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4312b2
xor ebx, ebx
push 0x4e80f4
push dword [esp + 0x18]
mov dword [esp + 0x60], ebx
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x431924
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
jne 0x431223
cmp word [ebx + 4], 0x3a
jne 0x431223
add ebx, 2
mov dword [esp + 0x40], ebx
mov esi, ebx
cmp ebx, ecx
jbe 0x431244
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x43123d
cmp eax, 9
jne 0x431244
sub esi, 2
cmp esi, ecx
ja 0x431230
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43125d
cmp eax, 9
jne 0x431262
add ecx, 2
jmp 0x431250
push 0
xor edx, edx
call fcn.00416ce0
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
je 0x431286
cmp eax, 4
jne 0x43128c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov cl, byte [esp + 0x13]
mov word [esi], di
mov esi, dword [esp + 0x48]
mov dword [esp + 0x48], esi
mov byte [esp + 0x13], cl
test ebx, ebx
je 0x431924
mov bx, word [0x4f93c8]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp eax, edx
jbe 0x43192f
mov eax, dword [0x4f8174]
cmp dword [eax + 0xb4], 0
jne 0x431cd3
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x614]
test eax, eax
je 0x4312e7
cmp byte [eax], 0x1a
je 0x431c4e
mov ebx, dword [esp + 0x40]
xor eax, eax
mov edi, dword [esp + 0x58]
mov word [ebx], ax
add ebx, 4
mov dword [esp + 0x40], ebx
test edi, edi
jne 0x4315d1
movzx eax, word [ebx]
test ax, ax
je 0x431354
mov edx, ebx
nop dword [eax]
cmp ax, 0x20
je 0x43131c
cmp ax, 9
jne 0x431325
movzx eax, word [edx + 2]
add edx, 2
jmp 0x431310
mov eax, edx
sub eax, ebx
cmp eax, 2
jb 0x431354
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431333
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp word [ebx], 0
mov edi, ebx
je 0x4315cd
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x4313c1
nop dword [eax + eax]
cmp ax, 0x20
je case.0x431388.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x431388.34
movzx eax, byte [eax + 0x431e80]
jmp dword [eax*4 + 0x431e78]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x431370
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041efb0
add esp, 0xc
mov byte [esp + 0x18], al
test al, al
je 0x4315cd
jmp 0x4313c6
mov byte [esp + 0x18], 0xff
mov esi, dword [esp + 0x14]
cmp word [esi], 0
je case.0x4313f8.34
cmp word [esi + 2], 0
je case.0x4313f8.34
movzx eax, word [esi + 2]
nop dword [eax + eax]
cmp ax, 0x20
je case.0x4313f8.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x4313f8.34
movzx eax, byte [eax + 0x431ee8]
jmp dword [eax*4 + 0x431ee0]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x4313e0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041efb0
add esp, 0xc
mov byte [esp + 0x19], al
push 0x4e5604
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov ebx, eax
add esp, 8
mov al, byte [esp + 0x19]
mov cl, al
dec cl
cmp cl, 5
ja 0x431449
cmp al, 3
jne 0x43144f
add al, 0x66
cmp al, 5
ja 0x431453
mov cl, 1
jmp 0x431455
xor cl, cl
mov dl, byte [esp + 0x18]
mov al, dl
dec al
cmp al, 5
ja 0x431466
cmp dl, 3
jne 0x43146e
mov al, dl
add al, 0x66
cmp al, 5
ja 0x431472
mov al, 1
jmp 0x431474
xor al, al
mov byte [esp + 0x1a], al
test cl, cl
jne 0x431485
mov byte [esp + 0x1b], 1
test al, al
jne 0x43148a
mov byte [esp + 0x1b], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x431490
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x4314b7
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4e8344
jne 0x4314bc
mov eax, 0x4cec30
push dword [esp + 0x14]
test ebx, ebx
mov ecx, 0x4e7f54
push eax
mov eax, 0x4cec30
cmove eax, ecx
push eax
push 0x4e8348
lea eax, [esp + 0x110]
push 0x20
push eax
call fcn.004b0610
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
lea eax, [esp + 0xd8]
push 0x1f
push edi
push eax
call esi
mov ebx, dword [esp + 0x64]
add esp, 0x24
xor eax, eax
mov word [esp + 0xfe], ax
lea eax, [esp + 0x90]
push 7
push ebx
push eax
call esi
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [esp + 0x9e], ax
cmp edi, 8
jae 0x431534
mov word [esp + edi*2 + 0x90], ax
xor edx, edx
mov dword [esp + 0x1c], edx
cmp word [esp + 0x90], dx
jne 0x430dbb
mov al, byte [esp + 0x18]
cmp al, 0xd
je 0x4315ab
cmp al, 0x13
jne 0x431014
movzx esi, word [esp + 0xc0]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test esi, 0xffffff80
jne 0x43157d
push 2
push esi
call edi
add esp, 8
test eax, eax
je 0x43157d
and esi, 0xffffffdf
cmp si, 0x50
je 0x4315c8
movzx esi, word [esp + 0xc0]
test esi, 0xffffff80
jne 0x4315a2
push 2
push esi
call edi
add esp, 8
test eax, eax
je 0x4315a2
and esi, 0xffffffdf
cmp si, 0x42
jmp 0x43100e
lea eax, [esp + 0xc0]
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 0x43100e
mov byte [esp + 0x18], 0
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x20]
cmp byte [esi + 0x254], 0
je 0x431616
push 0
push 0xff
push 0
push 0x67
mov ecx, esi
mov byte [esi + 0x254], 0
call fcn.00436750
test eax, eax
je 0x43127b
mov eax, dword [esi + 0x614]
mov dword [eax + 0xc], 1
mov dword [esi + 0x64c], 0
push 1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00433de0
test eax, eax
je 0x43127b
test edi, edi
je 0x431722
cmp word [edi], 0
je 0x431c87
cmp byte [esp + 0x13], 0
mov eax, 0x4cec30
mov edx, dword [esp + 0x48]
push 0
push dword [esp + 0x88]
cmove eax, ebx
push eax
push edi
mov edi, esi
mov ecx, dword [edi + 0x624]
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 0x624]
mov ecx, dword [ecx + 4]
call fcn.00417d40
add esp, 0x14
test eax, eax
je 0x43127b
movzx eax, word [ebx]
test ax, ax
je 0x430db7
cmp byte [esp + 0x13], 0
je 0x4316f9
mov ecx, ebx
cmp ax, 0x20
je 0x4316a0
cmp ax, 9
jne 0x4316a9
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x431694
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, edi
call fcn.00433f80
test eax, eax
je 0x43127b
mov eax, dword [edi + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x4316d9
cmp al, 0x20
jbe 0x431c68
cmp al, 0x21
je 0x431c68
cmp al, 0x69
jb 0x4316ed
cmp al, 0x6b
jbe 0x431c68
cmp al, 0x71
jb 0x4316f9
cmp al, 0x73
jbe 0x431c68
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.00436750
test eax, eax
je 0x43127b
mov eax, dword [edi + 0x614]
mov dword [eax + 0xc], 1
jmp 0x430db7
xor esi, esi
cmp word [ebx], si
je 0x431824
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
push str.AltTab
push ebx
call esi
add esp, 8
test eax, eax
jne 0x43174c
mov esi, 0x7ffe
jmp 0x4317fa
push str.ShiftAltTab
push ebx
call esi
add esp, 8
test eax, eax
jne 0x431765
mov esi, 0x7ffd
jmp 0x4317fa
push str.AltTabMenu
push ebx
call esi
add esp, 8
test eax, eax
jne 0x43177e
mov esi, 0x7ffc
jmp 0x4317fa
push str.AltTabAndMenu
push ebx
call esi
add esp, 8
test eax, eax
jne 0x431794
mov esi, 0x7ffb
jmp 0x4317fa
push str.AltTabMenuDismiss
push ebx
call esi
add esp, 8
test eax, eax
jne 0x4317aa
mov esi, 0x7ffa
jmp 0x4317fa
mov edi, dword [esp + 0x20]
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push esi
push ebx
mov ecx, edi
call fcn.00433f80
test eax, eax
je 0x43127b
mov eax, dword [edi + 0x614]
mov al, byte [eax]
cmp al, 9
jb 0x4317da
cmp al, 0x20
jbe 0x431c68
cmp al, 0x21
je 0x431c68
cmp al, 0x69
jb 0x4317ee
cmp al, 0x6b
jbe 0x431c68
cmp al, 0x71
jb 0x4317fa
cmp al, 0x73
jbe 0x431c68
mov ebx, dword [esp + 0x20]
mov ecx, ebx
push 0
push 0
push 0
push 0x67
call fcn.00436750
test eax, eax
je 0x43127b
mov eax, dword [ebx + 0x614]
mov dword [eax + 0xc], 1
jmp 0x431828
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x63]
push eax
lea edx, [esp + 0x8c]
call fcn.00417680
mov edi, eax
add esp, 4
test edi, edi
je 0x4318aa
test si, si
je 0x431854
mov word [edi + 6], si
jmp 0x430db7
mov eax, dword [edi + 0x20]
test eax, eax
je 0x431871
mov ecx, dword [0x4fb44c]
cmp dword [eax + 4], ecx
je 0x431c9d
mov eax, dword [eax + 8]
test eax, eax
jne 0x431861
push dword [esp + 0x88]
mov ecx, edi
push dword [ebx + 0x624]
call fcn.00416bd0
test eax, eax
je 0x431cbd
cmp byte [esp + 0x63], 0
jne 0x4318a1
cmp byte [0x4fa947], 0
je 0x430db7
mov byte [edi + 0x14], 1
jmp 0x430db7
mov edi, dword [esp + 0x20]
mov edx, esi
push 0
push dword [esp + 0x8c]
mov ecx, dword [edi + 0x624]
push dword [ecx + 4]
call fcn.00416190
add esp, 0xc
test eax, eax
jne 0x430db7
cmp dword [esp + 0x5c], 3
jne 0x43127b
cmp dword [edi + 0xb00], eax
jne 0x430db7
push dword [esp + 0x14]
lea eax, [esp + 0x144]
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.004b0610
push 0
push 0
xorps xmm3, xmm3
lea ecx, [esp + 0x158]
mov edx, 0x10000
call fcn.004b6bc0
add esp, 0x18
jmp 0x430db7
mov edx, dword [esp + 0x14]
mov bx, word [0x4f93c8]
mov ecx, dword [esp + 0x30]
cmp word [edx + ecx*2 - 2], 0x3a
jne 0x4319ff
cmp ecx, 1
je 0x431ceb
movzx eax, word [edx]
mov esi, edx
test ax, ax
je 0x431998
mov di, word [0x4f93d0]
mov ecx, eax
nop dword [eax + eax]
cmp cx, 0x20
je 0x4319ff
cmp cx, 9
je 0x4319ff
cmp cx, di
je 0x4319ff
cmp cx, bx
je 0x4319ff
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x431960
mov ecx, dword [esp + 0x30]
cmp word [edx + ecx*2 - 4], 0x3a
jne 0x4319a5
cmp ecx, 2
ja 0x4319ff
xor eax, eax
mov word [edx + ecx*2 - 2], ax
push str.Default
push dword [esp + 0x18]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov edi, dword [esp + 0x28]
add esp, 8
test eax, eax
jne 0x4319ed
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x4319ed
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4319ed
cmp byte [eax], 0x75
jne 0x4319ed
push 0
push 0
push 0
push 0x76
mov ecx, edi
call fcn.00436750
jmp 0x430daf
push 0
push dword [esp + 0x18]
mov ecx, edi
call fcn.00433de0
jmp 0x430daf
cmp word [edx], 0x23
mov edi, dword [esp + 0x20]
jne 0x431a3d
mov esi, dword [edi + 0x250]
mov ecx, edi
push edx
call fcn.004323c0
test eax, eax
je 0x43127b
cmp eax, 3
jne 0x431a39
mov eax, dword [esp + 0x7c]
mov dword [edi + 0x24c], eax
mov dword [edi + 0x250], esi
jmp 0x430db7
mov edx, dword [esp + 0x14]
movzx eax, word [edx]
cmp eax, 0x7b
je 0x431a63
cmp eax, 0x7d
je 0x431a63
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov ecx, edi
call fcn.00433f80
jmp 0x430daf
cmp eax, 0x7b
mov ecx, edi
push 0
setne al
push 0
add al, 0x77
push 0
movzx eax, al
push eax
call fcn.00436750
test eax, eax
je 0x43127b
mov ebx, dword [esp + 0x14]
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x431a88
cmp eax, 9
je 0x431a88
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
cmp word [ebx], 0
je 0x430dbb
lea ecx, [ebx + 2]
nop
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x431ab0
jmp 0x43087b
mov eax, dword [esp + 0x14]
test dl, dl
mov ecx, dword [0x4e5158]
push 0
push 1
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov cx, word [0x4e515c]
mov word [eax + 4], cx
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x28]
push eax
setne al
add al, 0xc5
movzx eax, al
push eax
call fcn.00436750
lea eax, [esp + 0xc0]
push eax
push str.Blind_s_Up
push dword [esp + 0x1c]
call fcn.00406560
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x20]
add esp, 0xc
push 0
push 1
push eax
push 0x41
call fcn.00436750
mov ecx, dword [esp + 0x20]
push 0
push 0
push 0
push 0x67
call fcn.00436750
mov edx, dword [esp + 0x40]
mov al, byte [esp + 0x3d]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x5c], edx
mov dh, bl
mov byte [esp + 0x19], dh
mov dh, byte [esp + 0x3f]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x3e]
mov byte [esp + 0x1a], dh
mov dh, byte [esp + 0x37]
mov byte [esp + 0x18], 0
mov dword [esp + 0x28], edi
mov byte [esp + 0x13], al
mov byte [esp + 0x1b], dh
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x24]
lea edi, [esp + 0xa188]
cmp dword [esp + 0x8c], edi
lea eax, [esp + 0x12190]
mov esi, dword [esp + 0x44]
mov edx, edi
mov ebx, dword [esp + 0x20]
cmovne eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], eax
jmp 0x42fd03
push ecx
mov ecx, dword [esp + 0x24]
push str.Continuation_section_too_long.
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [edi + 0x244], 0
mov eax, 0x4e81d0
push ecx
mov ecx, str.Not_a_valid_method__class_or_property_definition.
cmove eax, ecx
mov ecx, edi
push eax
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push 0x4e81d0
mov ecx, edi
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.Functions_cannot_contain_functions.
mov ecx, edi
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.Not_a_valid_property_getter_setter.
mov ecx, edi
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, edi
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.IfWin_should_be_IfWin.
mov dword [ecx + 0x64c], eax
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov eax, 0x3a
mov ecx, edi
push str.Invalid_single_line_hotkey_hotstring.
mov word [ebx - 4], ax
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.This_hotstring_is_missing_its_abbreviation.
mov ecx, esi
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push str.Duplicate_hotkey.
mov ecx, ebx
mov dword [ebx + 0x64c], 0
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
push 0x4e2be8
mov ecx, ebx
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, dword [esp + 0x24]
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, dword [esp + 0x24]
push str.This_line_does_not_contain_a_recognized_action.
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, dword [esp + 0x24]
push 0x4e816c
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp word [esp + 0x2180], 0
je 0x431d8e
cmp dword [esp + 0x4c], 0
mov esi, dword [ebx + 0x250]
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x250], eax
je 0x431d65
cmp byte [esp + 0x12], 0
mov eax, str.Missing___
push ecx
mov ecx, 0x4e81d0
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.0044df00
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
lea eax, [esp + 0x2198]
mov ecx, ebx
push eax
call fcn.00433f80
test eax, eax
je 0x43127b
mov dword [ebx + 0x250], esi
cmp dword [ebx + 0x28], 0
je 0x431db1
cmp dword [esp + 0x7c], 0
jne 0x431db1
push ecx
push str.Missing___
mov ecx, ebx
call fcn.0044df00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
inc dword [ebx + 0x250]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4