Function at 0x405790
Capabilities:
Hide graphical window
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x518
movaps xmmword [rsp + 0x500], xmm6
mov edi, dword [0x00435048]
mov rbx, rcx
mov esi, edx
mov r12, r8
lea rcx, [0x00435860]
mov rbp, r9
call sym.hb_threadEnterCriticalSection
test edi, edi
je 0x40580b
lea r8, [0x00435058]
mov edx, 1
nop dword [rax + rax]
mov r15, qword [r8 + rdx*8]
test r15, r15
je 0x4057f5
cmp rbx, qword [r15 + 0x14f0]
je 0x405850
sub edi, 1
test edi, edi
setne cl
cmp edx, 0xff
setle al
add rdx, 1
test cl, al
jne 0x4057e0
lea rcx, [0x00435860]
call sym.hb_threadLeaveCriticalSection
cmp esi, 1
je 0x405f20
mov r9, rbp
mov r8, r12
mov edx, esi
mov rcx, rbx
call qword [sym.imp.USER32.dll_DefWindowProcW]
nop
movaps xmm6, xmmword [rsp + 0x500]
add rsp, 0x518
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x00435860]
call sym.hb_threadLeaveCriticalSection
cmp esi, 0x112
je 0x4067f0
jbe 0x4058d0
cmp esi, 0x20a
jbe 0x405915
cmp esi, 0x232
je 0x406650
jbe 0x405970
cmp esi, 0x2a3
je 0x406770
jbe 0x405c70
cmp esi, 0x501
je 0x405fb0
cmp esi, 0x977
jne 0x405820
cmp rbp, 0x205
je 0x4062cb
xor eax, eax
jmp 0x405832
cmp esi, 0x2f
ja 0x405b25
cmp esi, 0x2e
jae 0x406704
cmp esi, 8
je 0x406670
jbe 0x4059f0
cmp esi, 0x10
je 0x4064f5
jbe 0x405ac0
cmp esi, 0x11
jne 0x405b15
call sym.hb_vmRequestQuit
xor eax, eax
jmp 0x405832
cmp esi, 0x203
jae 0x405de0
cmp esi, 0x138
ja 0x405dc0
cmp esi, 0x132
jae 0x4065f0
cmp esi, 0x114
je 0x406582
jb 0x406080
cmp esi, 0x115
je 0x406010
cmp esi, 0x121
jne 0x405820
call sym.hb_idleState
xor eax, eax
jmp 0x405832
cmp esi, 0x212
je 0x4060d0
cmp esi, 0x231
je 0x405fc0
cmp esi, 0x211
jne 0x405820
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8d, 1
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, r12d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 9
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
cmp esi, 2
je 0x405b1e
jbe 0x405d60
cmp esi, 6
je 0x405f81
cmp esi, 7
jne 0x405820
mov rcx, r15
call sym.hb_gt_wvt_UpdateCaret
mov r8d, dword [r15 + 0x15ec]
mov qword [r15 + 0x15f0], 1
test r8d, r8d
je 0x4062b0
cmp qword [r15 + 0x1600], 0
je 0x405a50
call sym.hb_vmRequestReenter
test eax, eax
jne 0x4072d0
nop dword [rax + rax]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rsi, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8, rbx
mov edx, 1
mov rcx, rsi
call sym.hb_arraySetNInt
mov r8, r12
mov edx, 2
mov rcx, rsi
call sym.hb_arraySetNInt
mov r8, rbp
mov edx, 3
mov rcx, rsi
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rsi
mov rcx, r15
mov r8d, 2
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
cmp esi, 0xf
jne 0x405820
mov rax, qword [r15 + 0x2148]
mov r14d, dword [rax + 0x2c]
test r14d, r14d
jne 0x4058bf
mov r13d, dword [r15 + 0x2150]
test r13d, r13d
jne 0x406ffa
mov edi, dword [r15 + 0x2158]
test edi, edi
je 0x406fa0
mov r9, rbp
mov r8, r12
mov edx, 0xf
mov rcx, rbx
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x405832
cmp esi, 0x12
jne 0x405820
xor eax, eax
jmp 0x405832
cmp esi, 0x100
je 0x4068f0
ja 0x405bb0
cmp esi, 0xa0
je 0x405de0
cmp esi, 0xa3
je 0x405ff0
cmp esi, 0x4e
jne 0x405820
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rdi, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8d, r12d
mov rcx, rdi
mov edx, 1
call sym.hb_arraySetNI
mov r8, rbp
mov rcx, rdi
mov edx, 2
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rdi
mov rcx, r15
mov r8d, 0xa
call sym.hb_gt_wvt_FireEvent.isra.9
jmp 0x405820
cmp esi, 0x104
je 0x4068f0
jbe 0x405d00
cmp esi, 0x106
je 0x405f50
cmp esi, 0x111
jne 0x405820
mov rsi, r12
movzx r12d, r12w
shr rsi, 0x10
test si, si
jne 0x406244
mov rcx, rbp
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x406244
mov rax, qword [r15 + 0x2148]
mov edx, dword [rax + 0x2c]
test edx, edx
je 0x407348
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
xor r8d, r8d
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, r12d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 9
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
cmp esi, 0x2a1
jne 0x405820
xor ecx, ecx
call sym.hb_itemNew
mov edx, 6
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8d, 0x2a1
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNI
xor r8d, r8d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
movzx r8d, bp
mov edx, 3
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, ebp
mov edx, 4
mov rcx, rbx
shr r8d, 0x10
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 6
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
cmp esi, 0x102
jne 0x405820
mov ecx, 0x11
mov rbx, qword [sym.imp.USER32.dll_GetKeyState]
call rbx
mov edx, dword [r15 + 0x1530]
test edx, edx
jne 0x405d4c
shr rbp, 0x10
shr ax, 0xf
cmp bpl, 0x1c
jne 0x4072fd
test al, al
je 0x4072fd
mov edx, 0xa
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
mov dword [r15 + 0x1530], 0
xor eax, eax
jmp 0x405832
cmp esi, 1
jne 0x405820
mov rax, qword [r15 + 0x2148]
mov eax, dword [rax + 0x2c]
test eax, eax
jne 0x4058bf
mov rcx, qword [r15]
mov ebx, dword [r15 + 0x20]
mov esi, dword [r15 + 0x1c]
mov rax, qword [rcx]
mov r8d, ebx
mov edx, esi
call qword [rax + 0x38]
mov edx, eax
xor eax, eax
test edx, edx
je 0x405da6
mov dword [r15 + 0x1c], esi
mov eax, 1
mov dword [r15 + 0x20], ebx
mov rcx, r15
mov qword [rsp + 0x50], rax
call sym.hb_gt_wvt_ResetWindowSize
mov rax, qword [rsp + 0x50]
jmp 0x405832
cmp esi, 0x200
jb 0x405820
cmp esi, 0x201
jbe 0x405de0
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetFocus]
nop dword [rax]
mov r14d, dword [r15 + 0x153c]
test r14d, r14d
je 0x406130
movzx edi, bp
shr ebp, 0x10
mov eax, edi
cdq
idiv dword [r15 + 0x48c]
mov r9d, eax
mov eax, ebp
cdq
mov dword [r15 + 0x74], r9d
idiv dword [r15 + 0x490]
cmp esi, 0x204
mov r14d, eax
mov dword [r15 + 0x78], eax
je 0x40705c
jbe 0x406540
cmp esi, 0x207
je 0x40709b
jbe 0x4064d0
cmp esi, 0x209
je 0x407090
jb 0x407080
cmp esi, 0x20a
jne 0x405b1e
shr r12, 0x10
xor r13d, r13d
test r12w, r12w
setle r13b
add r13d, 0x3f6
xor ecx, ecx
mov dword [rsp + 0x50], r9d
call sym.hb_itemNew
mov edx, r13d
mov rcx, r15
mov rbx, rax
call sym.hb_gt_wvt_AddCharToInputQueue
mov edx, 6
mov rcx, rbx
call sym.hb_arrayNew
mov r8d, esi
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNL
mov r8d, r13d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, edi
mov edx, 3
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, ebp
mov edx, 4
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, r14d
mov edx, 5
mov rcx, rbx
call sym.hb_arraySetNI
mov r9d, dword [rsp + 0x50]
mov edx, 6
mov rcx, rbx
mov r8d, r9d
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 6
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
mov r15, qword [rbp]
test r15, r15
je 0x405820
movsxd rdx, dword [r15 + 8]
lea rax, [0x00435060]
cmp qword [rax + rdx*8], r15
jne 0x405820
mov qword [r15 + 0x14f0], rbx
jmp 0x405d69
mov eax, dword [r15 + 0x1530]
test eax, eax
jne 0x406335
shr rbp, 0x10
movzx eax, bpl
cmp ax, 0x34
ja case.0x405f7f.0
lea rdx, [0x0042d854]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
xor ecx, ecx
call sym.hb_itemNew
lea rdx, [r15 + 0x2178]
xor ecx, ecx
test r12w, r12w
sete cl
mov r9, rax
lea r8d, [rcx + 2]
mov rcx, r15
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
mov rcx, r15
call sym.hb_gt_wvt_UpdateCaret
xor eax, eax
jmp 0x405832
mov r9d, dword [r15 + 0x1534]
test r9d, r9d
jne 0x406872
mov dword [r15 + 0x2158], 1
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
jmp 0x405832
mov ecx, dword [r15 + 0x1534]
test ecx, ecx
jne 0x4058bf
mov rcx, r15
call sym.hb_gt_wvt_Maximize
xor eax, eax
jmp 0x405832
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
movzx r8d, r12w
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNL
mov r8d, r12d
mov edx, 2
mov rcx, rbx
shr r8d, 0x10
call sym.hb_arraySetNL
mov r8, rbp
mov edx, 3
mov rcx, rbx
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 0x10
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
cmp qword [r15 + 0x1618], 0
je 0x4058bf
call sym.hb_vmRequestReenter
test eax, eax
je 0x4058bf
mov rcx, qword [r15 + 0x1618]
call sym.hb_vmPushDynSym
call sym.hb_vmPushNil
mov rcx, r12
call sym.hb_vmPushNumInt
mov ecx, 1
call sym.hb_vmDo
call sym.hb_vmRequestRestore
xor eax, eax
jmp 0x405832
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8d, 2
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, r12d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 9
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
mov r13d, dword [r15 + 0x7c]
test r13d, r13d
jne 0x406151
cmp esi, 0x200
je 0x4058bf
cmp esi, 0xa0
je 0x4058bf
movzx edi, bp
shr ebp, 0x10
mov eax, edi
cdq
idiv dword [r15 + 0x48c]
mov r9d, eax
mov eax, ebp
cdq
mov dword [r15 + 0x74], r9d
idiv dword [r15 + 0x490]
cmp esi, 0x204
mov r14d, eax
mov dword [r15 + 0x78], eax
je 0x40705c
ja 0x405e2a
cmp esi, 0x201
je 0x4062c0
ja 0x4064a3
cmp esi, 0xa0
je 0x407051
cmp esi, 0x200
jne 0x405b1e
mov ebx, dword [r15 + 0x1538]
test ebx, ebx
jne 0x407765
sub r12d, 1
mov r13d, 0x3e9
cmp r12w, 0xf
ja 0x4061e5
lea rax, [0x0042db40]
movzx r12d, r12w
movsx r13d, word [rax + r12*2]
mov r11d, dword [r15 + 0x2154]
test r11d, r11d
jne 0x405e70
mov eax, 0x60000003
mov dword [rsp + 0x50], r9d
lea rcx, [rsp + 0x130]
shl rax, 3
mov qword [rsp + 0x130], rax
mov rax, qword [r15 + 0x14f0]
mov dword [rsp + 0x140], 1
mov qword [rsp + 0x138], rax
call qword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov r9d, dword [rsp + 0x50]
mov dword [r15 + 0x2154], eax
jmp 0x405e70
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
movzx r8d, si
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNI
mov r8d, r12d
mov edx, 2
mov rcx, rbx
call sym.hb_arraySetNI
mov r8, rbp
mov edx, 3
mov rcx, rbx
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 0xb
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
mov dword [r15 + 0x15ec], 1
jmp 0x405a50
mov r13d, 0x3ea
jmp 0x405e70
lea rdx, [rsp + 0x130]
mov ecx, 2
mov dword [rsp + 0x130], 0x3c8
mov qword [rsp + 0x138], rbx
mov dword [rsp + 0x140], 0x63
mov dword [rsp + 0x148], 0x977
mov qword [rsp + 0x150], 0
call qword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov edx, 9
mov rcx, rbx
call qword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
jmp 0x405832
mov edx, 0x134
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
mov dword [r15 + 0x1530], 0
xor eax, eax
jmp 0x405832
mov edx, 0x133
jmp 0x40632d
mov edx, 0x132
jmp 0x40632d
mov edx, 0x131
jmp 0x40632d
mov edx, 0x130
jmp 0x40632d
mov edx, 0x12f
jmp 0x40632d
mov edx, 0x12e
jmp 0x40632d
mov edx, 0x12d
jmp 0x40632d
mov edx, 0x12c
jmp 0x40632d
mov edx, 0x126
jmp 0x40632d
mov edx, 0x125
jmp 0x40632d
mov edx, 0x124
jmp 0x40632d
mov edx, 0x123
jmp 0x40632d
mov edx, 0x122
jmp 0x40632d
mov edx, 0x121
jmp 0x40632d
mov edx, 0x120
jmp 0x40632d
mov edx, 0x11f
jmp 0x40632d
mov edx, 0x11e
jmp 0x40632d
mov edx, 0x119
jmp 0x40632d
mov edx, 0x118
jmp 0x40632d
mov edx, 0x117
jmp 0x40632d
mov edx, 0x116
jmp 0x40632d
mov edx, 0x115
jmp 0x40632d
mov edx, 0x114
jmp 0x40632d
mov edx, 0x113
jmp 0x40632d
mov edx, 0x112
jmp 0x40632d
mov edx, 0x111
jmp 0x40632d
mov edx, 0x110
jmp 0x40632d
mov edx, 0x10e
jmp 0x40632d
mov edx, 0x183
jmp 0x40632d
mov edx, 0x181
jmp 0x40632d
mov edx, 0x180
jmp 0x40632d
mov edx, 0x17f
jmp 0x40632d
mov edx, 0x17e
jmp 0x40632d
mov edx, 0x17d
jmp 0x40632d
mov edx, 0x17c
jmp 0x40632d
mov edx, 0x17b
jmp 0x40632d
mov edx, 0x17a
jmp 0x40632d
mov edx, 0x179
jmp 0x40632d
mov edx, 0x178
jmp 0x40632d
cmp esi, 0x202
je 0x4070b0
cmp esi, 0x203
mov r13d, 0x3ee
je 0x405e70
xor eax, eax
jmp 0x405832
cmp esi, 0x205
je 0x407070
cmp esi, 0x206
mov r13d, 0x3ef
je 0x405e70
xor eax, eax
jmp 0x405832
mov r10d, dword [r15 + 0x2164]
test r10d, r10d
jne 0x406815
xor ecx, ecx
call sym.hb_itemNew
lea rdx, [r15 + 0x2178]
mov r8d, 4
mov rcx, r15
mov r9, rax
call sym.hb_gt_wvt_FireEvent.isra.9
test eax, eax
jne 0x4058bf
mov edx, 0x44e
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
cmp esi, 0x201
jne 0x406197
movd xmm0, edi
movd xmm2, ebp
xor eax, eax
mov dword [r15 + 0x1538], 1
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm0
movups xmmword [r15 + 0x1578], xmm0
pxor xmm0, xmm0
movups xmmword [r15 + 0x1588], xmm0
jmp 0x405832
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rbx, rax
mov rcx, rax
call sym.hb_arrayNew
movzx r8d, r12w
mov edx, 1
mov rcx, rbx
call sym.hb_arraySetNL
mov r8d, r12d
mov edx, 2
mov rcx, rbx
shr r8d, 0x10
call sym.hb_arraySetNL
mov r8, rbp
mov edx, 3
mov rcx, rbx
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rbx
mov rcx, r15
mov r8d, 0xf
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rdi, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8, r12
mov edx, 1
mov rcx, rdi
call sym.hb_arraySetNInt
mov r8, rbp
mov edx, 2
mov rcx, rdi
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rdi
mov rcx, r15
mov r8d, 0xc
call sym.hb_gt_wvt_FireEvent.isra.9
test eax, eax
je 0x405820
cdqe
jmp 0x405832
mov r8d, dword [r15 + 0x1540]
test r8d, r8d
je 0x40684e
mov rcx, r15
call sym.hb_gt_wvt_FitSizeRows.part.12
xor eax, eax
jmp 0x405832
mov ecx, dword [r15 + 0x64]
test ecx, ecx
jne 0x40683b
cmp qword [r15 + 0x1608], 0
mov dword [r15 + 0x15f4], 1
je 0x40669e
call sym.hb_vmRequestReenter
test eax, eax
jne 0x407024
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rsi, rax
mov rcx, rax
call sym.hb_arrayNew
mov r8, rbx
mov edx, 1
mov rcx, rsi
call sym.hb_arraySetNInt
mov r8, r12
mov edx, 2
mov rcx, rsi
call sym.hb_arraySetNInt
mov r8, rbp
mov edx, 3
mov rcx, rsi
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rsi
mov rcx, r15
mov r8d, 3
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
xor ecx, ecx
call sym.hb_itemNew
mov edx, 3
mov rdi, rax
mov rcx, rax
call sym.hb_arrayNew
movzx r8d, r12w
mov rcx, rdi
mov edx, 1
call sym.hb_arraySetNL
mov r8d, r12d
mov rcx, rdi
mov edx, 2
shr r8d, 0x10
call sym.hb_arraySetNL
mov r8, rbp
mov rcx, rdi
mov edx, 3
call sym.hb_arraySetNInt
lea rdx, [r15 + 0x2178]
mov r9, rdi
mov rcx, r15
mov r8d, 0x12
call sym.hb_gt_wvt_FireEvent.isra.9
jmp 0x405820
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rsi, rax
mov rcx, rax
call sym.hb_arrayNew
mov rcx, rsi
mov r8d, 0x2a3
mov edx, 1
call sym.hb_arraySetNI
xor r8d, r8d
mov rcx, rsi
mov edx, 2
call sym.hb_arraySetNI
lea rdx, [r15 + 0x2178]
mov r9, rsi
mov rcx, r15
mov r8d, 6
call sym.hb_gt_wvt_FireEvent.isra.9
mov r9, rbp
mov r8, r12
mov edx, 0x2a3
mov dword [r15 + 0x2154], 0
mov rcx, rbx
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x405832
cmp r12, 0x3e8
je 0x406829
cmp r12, 0xf030
jne 0x405820
mov rcx, r15
call sym.hb_gt_wvt_Maximize
xor eax, eax
jmp 0x405832
mov edx, 0x44e
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov dword [r15 + 0x153c], 1
xor eax, eax
jmp 0x405832
call qword [sym.imp.USER32.dll_DestroyCaret]
mov dword [r15 + 0x64], 0
jmp 0x40667c
mov dword [r15 + 0x2158], 0
mov rcx, qword [r15 + 0x14f0]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
jmp 0x405832
mov rcx, qword [r15 + 0x14f0]
mov r8d, 0xcf0000
mov edx, 0xfffffff0
mov dword [r15 + 0x1534], 0
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [r15 + 0x14f0]
mov dword [rsp + 0x30], 0x2037
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, qword [r15 + 0x14f0]
xor edx, edx
mov rsi, qword [sym.imp.USER32.dll_ShowWindow]
call rsi
mov rcx, qword [r15 + 0x14f0]
mov edx, 1
call rsi
jmp 0x405fd0
mov ecx, 0x12
mov rbx, qword [sym.imp.USER32.dll_GetKeyState]
call rbx
mov dword [r15 + 0x1530], 0
mov edi, eax
lea rax, [r12 - 0xd]
cmp rax, 0x6e
ja case.0x406928.14
lea rdx, [0x0042d928]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov ecx, 0x12
call rbx
test ax, ax
js 0x407dfa
mov ecx, 0x11
call rbx
test ax, ax
js 0x407de6
mov ecx, 0x10
call rbx
test ax, ax
js 0x408108
mov edx, 0xffffffd7
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407e72
mov ecx, 0x11
call rbx
test ax, ax
js 0x407e5e
mov ecx, 0x10
call rbx
test ax, ax
js 0x40811c
mov edx, 0xffffffd8
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407d82
mov ecx, 0x11
call rbx
test ax, ax
js 0x407d6e
mov ecx, 0x10
call rbx
test ax, ax
js 0x408130
mov edx, 0xfffffff7
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407e22
mov ecx, 0x11
call rbx
test ax, ax
js 0x407e0e
mov ecx, 0x10
call rbx
test ax, ax
js 0x408180
mov edx, 0xfffffff8
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407e4a
mov ecx, 0x11
call rbx
test ax, ax
js 0x407e36
mov ecx, 0x10
call rbx
test ax, ax
js 0x408194
mov edx, 0xfffffffa
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407e9a
mov ecx, 0x11
call rbx
test ax, ax
js 0x407e86
mov ecx, 0x10
call rbx
test ax, ax
js 0x408144
mov edx, 0xfffffffb
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407f3a
mov ecx, 0x11
call rbx
test ax, ax
js 0x407f26
mov ecx, 0x10
call rbx
test ax, ax
js 0x40807e
mov edx, 0xfffffff9
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407daa
mov ecx, 0x11
call rbx
test ax, ax
js 0x407d96
mov ecx, 0x10
call rbx
test ax, ax
js 0x408158
mov edx, 0xfffffffc
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407dd2
mov ecx, 0x11
call rbx
test ax, ax
js 0x407dbe
mov ecx, 0x10
call rbx
test ax, ax
js 0x40816c
mov edx, 0xfffffffe
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407f62
mov ecx, 0x11
call rbx
test ax, ax
js 0x407f4e
mov ecx, 0x10
call rbx
test ax, ax
js 0x40803e
or edx, 0xffffffff
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407ec2
mov ecx, 0x11
call rbx
test ax, ax
js 0x407eae
mov ecx, 0x10
call rbx
mov edx, 4
mov rcx, r15
test ax, ax
js 0x4082b5
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407d5a
mov ecx, 0x11
call rbx
test ax, ax
js 0x407d46
mov ecx, 0x10
call rbx
mov edx, 0x13
mov rcx, r15
test ax, ax
js 0x4082c1
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407f8a
mov ecx, 0x11
call rbx
test ax, ax
js 0x407f76
mov ecx, 0x10
call rbx
mov edx, 1
mov rcx, r15
test ax, ax
js 0x40809e
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407cbd
mov ecx, 0x11
call rbx
test ax, ax
js 0x407ca9
mov ecx, 0x10
call rbx
test ax, ax
js 0x4080ce
mov edx, 0x1c
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407c95
mov ecx, 0x11
call rbx
test ax, ax
js 0x407c81
mov ecx, 0x10
call rbx
mov edx, 0x16
mov rcx, r15
test ax, ax
js 0x408066
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407eea
mov ecx, 0x11
call rbx
test ax, ax
js 0x407ed6
mov ecx, 0x10
call rbx
mov edx, 6
mov rcx, r15
test ax, ax
js 0x4080b6
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407f12
mov ecx, 0x11
call rbx
test ax, ax
js 0x407efe
mov ecx, 0x10
call rbx
mov edx, 0x12
mov rcx, r15
test ax, ax
js 0x4080c2
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
test di, di
js 0x406f71
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407fb2
mov ecx, 0x11
call rbx
test ax, ax
js 0x407f9e
mov ecx, 0x10
call rbx
mov edx, 0x18
mov rcx, r15
test ax, ax
js 0x408092
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
cmp dword [r15 + 0x1528], 0
je 0x406e13
test di, di
js 0x4080e2
mov ecx, 0x12
call rbx
test ax, ax
js 0x408002
mov ecx, 0x11
call rbx
test ax, ax
js 0x407fee
mov ecx, 0x10
call rbx
test ax, ax
js 0x408052
mov edx, 0xfffffffd
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407fda
mov ecx, 0x11
call rbx
test ax, ax
js 0x407fc6
mov ecx, 0x10
call rbx
mov edx, 5
mov rcx, r15
test ax, ax
js 0x4080aa
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x40802a
mov ecx, 0x11
call rbx
test ax, ax
js 0x408016
mov ecx, 0x10
call rbx
mov edx, 7
mov rcx, r15
test ax, ax
js 0x408072
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x12
call rbx
test ax, ax
js 0x407d32
mov ecx, 0x11
call rbx
test ax, ax
js 0x407d1e
mov ecx, 0x10
call rbx
mov edx, 3
mov rcx, r15
test ax, ax
js 0x408322
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov ecx, 0x11
call rbx
mov ecx, 0x10
mov r13d, eax
call rbx
mov rdx, rbp
mov r8d, r13d
shr rdx, 0x10
shr r8w, 0xf
movzx ecx, dl
mov r9d, r8d
cmp ecx, 0x4c
mov edx, ecx
jne 0x407bad
test r8b, r8b
je 0x407bad
mov edx, 0x18f
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
cmp dword [r15 + 0x1568], 0
je 0x406db5
mov rcx, qword [r15]
call sym.hb_gt_wvt_FullScreen
xor eax, eax
mov dword [r15 + 0x1530], 1
jmp 0x405832
lea rdx, [rsp + 0xc0]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetUpdateRect]
lea rdi, [r15 + 0x2178]
test eax, eax
mov qword [rsp + 0x70], rdi
jne 0x407363
xor ecx, ecx
call sym.hb_itemNew
mov rdx, rbx
mov rcx, rax
mov rsi, rax
call sym.hb_itemPutNInt
mov rdx, qword [rsp + 0x70]
mov r9, rsi
mov rcx, r15
mov r8d, 0xd
call sym.hb_gt_wvt_FireEvent.isra.9
xor eax, eax
jmp 0x405832
lea rdx, [rsp + 0xc0]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
jne 0x4076f0
lea rax, [r15 + 0x2178]
mov qword [rsp + 0x70], rax
jmp 0x406fc8
mov rcx, qword [r15 + 0x1608]
call sym.hb_vmPushDynSym
call sym.hb_vmPushNil
mov rcx, rbx
call sym.hb_vmPushNumInt
mov ecx, 1
call sym.hb_vmDo
call sym.hb_vmRequestRestore
jmp 0x40669e
mov r13d, 0x3f8
jmp 0x405e70
mov r13d, 0x3ec
jmp 0x405e70
mov r13d, 0x3ed
jmp 0x405e70
mov r13d, 0x3f1
jmp 0x405e70
mov r13d, 0x3f2
jmp 0x405e70
mov r13d, 0x3f0
jmp 0x405e70
mov r12d, dword [r15 + 0x1538]
mov r13d, 0x3eb
test r12d, r12d
je 0x405e70
xor r8d, r8d
xor edx, edx
mov rcx, qword [r15 + 0x14f0]
mov r9d, 0x101
mov qword [r15 + 0x1538], 0
call qword [sym.imp.USER32.dll_RedrawWindow]
mov r9d, dword [r15 + 0x1578]
mov eax, dword [r15 + 0x1580]
mov ecx, dword [r15 + 0x157c]
mov edx, dword [r15 + 0x1584]
mov r8d, r9d
cmp eax, r9d
cmovle r8, rax
mov r11d, ecx
cmp edx, ecx
cmovle r11d, edx
shl r11, 0x20
or r8, r11
cmp eax, r9d
cmovl rax, r9
cmp edx, ecx
mov qword [rsp + 0x90], r8
cmovl edx, ecx
lea r8, [rsp + 0x90]
shl rdx, 0x20
lea rcx, [rsp + 0xa0]
or rax, rdx
mov rdx, r15
mov qword [rsp + 0x98], rax
call sym.hb_gt_wvt_GetColRowFromXYRect
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
mov rbx, rdx
mov dword [rsp + 0x50], edx
mov rsi, rcx
sar rbx, 0x20
sub edx, ecx
mov dword [rsp + 0x78], ecx
sar rsi, 0x20
mov eax, ebx
add edx, 3
sub eax, esi
mov r12d, esi
add eax, 1
imul eax, edx
cdqe
add rax, rax
lea rcx, [rax + 1]
call sym.hb_xgrab
cmp esi, ebx
mov qword [rsp + 0x70], rax
jg 0x4072aa
lea eax, [rbx + 1]
xor edi, edi
mov dword [rsp + 0x7c], eax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x68], rax
mov ebx, dword [rsp + 0x50]
movsxd rax, edi
cmp dword [rsp + 0x78], ebx
jg 0x4078f0
mov rbx, qword [rsp + 0x70]
lea rsi, [rbx + rax*2]
mov ebx, dword [rsp + 0x78]
jmp 0x407220
movzx ecx, word [rsp + 0xe0]
add ebx, 1
call sym.hb_cdpGetU16Ctrl
cmp dword [rsp + 0x50], ebx
mov word [r14], ax
jl 0x4072bb
mov edi, ebp
mov rcx, qword [r15]
lea ebp, [rdi + 1]
mov r8d, ebx
mov r14, rsi
mov rdx, qword [rsp + 0x60]
lea rsi, [rsi + 2]
mov r9, qword [rsp + 0x68]
mov r13, rsi
mov rax, qword [rcx]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x20], rdx
mov edx, r12d
call qword [rax + 0x148]
test eax, eax
jne 0x407200
add edi, 2
add r12d, 1
cmp r12d, dword [rsp + 0x7c]
mov esi, 0xd
mov ebp, 0xa
mov word [r14], si
mov word [r13], bp
jne 0x4071dd
mov r8, qword [rsp + 0x70]
movsxd r9, edi
xor edx, edx
xor ecx, ecx
call sym.hb_itemPutStrLenU16
mov ecx, 0xd
mov rbx, rax
mov rdx, rax
call sym.hb_gt_winapi_setClipboard
mov rcx, rbx
call sym.hb_itemRelease
mov rcx, qword [rsp + 0x70]
call sym.hb_xfree
xor eax, eax
jmp 0x405832
lea eax, [rdi + 2]
mov rdi, qword [rsp + 0x70]
mov r14, rsi
cdqe
lea r13, [rdi + rax*2]
mov edi, ebp
jmp 0x40725c
mov rcx, qword [r15 + 0x1600]
call sym.hb_vmPushDynSym
call sym.hb_vmPushNil
mov rcx, rbx
call sym.hb_vmPushNumInt
mov ecx, 1
call sym.hb_vmDo
call sym.hb_vmRequestRestore
jmp 0x405a50
lea ecx, [r12 - 1]
mov edx, r12d
cmp ecx, 0x19
ja 0x407312
test al, al
jne 0x407906
cmp r12d, 9
je 0x40798a
jle 0x407709
cmp r12d, 0xd
je 0x407959
cmp r12d, 0x1b
jne 0x40793d
mov edx, 0x1b
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov edx, dword [r15 + 0x15bc]
mov dword [r15 + 0x15b8], r12d
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405c11
mov esi, dword [r15 + 0x15c8]
movdqa xmm1, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0xd0], xmm1
test esi, esi
je 0x4073b9
cmp dword [r15 + 0x15f4], 0
mov r8d, dword [rsp + 0xd4]
mov edx, dword [rsp + 0xd0]
mov eax, dword [rsp + 0xdc]
mov r9d, dword [rsp + 0xd8]
jne 0x407ae0
cmp dword [r15 + 0x15f0], 0
jne 0x407a04
mov r11d, dword [r15 + 0x1564]
mov eax, dword [rsp + 0xd0]
mov edi, dword [rsp + 0xd4]
mov r8d, dword [rsp + 0xd8]
test r11d, r11d
mov ecx, dword [rsp + 0xdc]
je 0x40741a
mov edx, dword [r15 + 0x1570]
cmp eax, edx
jl 0x407936
sub eax, edx
cmp edx, r8d
jg 0x40792e
sub r8d, edx
mov edx, dword [r15 + 0x156c]
cmp edi, edx
jl 0x407927
sub edi, edx
cmp edx, ecx
jg 0x407920
sub ecx, edx
mov r11d, dword [r15 + 0x48c]
cdq
mov r9d, dword [r15 + 0x490]
idiv r11d
mov dword [rsp + 0x78], eax
mov eax, edi
cdq
idiv r9d
mov edi, eax
mov r14d, eax
mov eax, r8d
cdq
mov dword [r15 + 0x1598], edi
idiv r11d
test edx, edx
mov r10d, eax
mov eax, ecx
mov rcx, qword [r15 + 0x14f0]
sete dl
movzx edx, dl
sub r10d, edx
cdq
idiv r9d
mov r13d, r10d
mov dword [r15 + 0x15a4], r10d
mov esi, eax
mov eax, dword [rsp + 0x78]
test edx, edx
sete dl
movzx edx, dl
sub esi, edx
mov dword [r15 + 0x15a0], eax
lea rax, [rsp + 0xe0]
mov dword [r15 + 0x159c], esi
mov rdx, rax
mov qword [rsp + 0x88], rax
call qword [sym.imp.USER32.dll_BeginPaint]
mov rax, qword [r15 + 0x15d0]
mov r10d, dword [r15 + 0x1564]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0xd0]
test r10d, r10d
mov qword [rsp + 0x80], rax
jne 0x4078cb
mov rdx, qword [r15 + 0x14e8]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.GDI32.dll_SelectObject]
cmp edi, esi
jg 0x40764d
lea eax, [rsi + 1]
xor ebp, ebp
mov qword [rsp + 0x560], rbx
mov dword [rsp + 0x7c], eax
lea rax, [rsp + 0xbc]
mov qword [rsp + 0x50], rax
nop dword [rax]
cmp dword [rsp + 0x78], r13d
jg 0x407636
mov esi, dword [rsp + 0x78]
lea rax, [rsp + 0x130]
xor ebx, ebx
lea r12, [rsp + 0xba]
mov qword [rsp + 0x60], rax
lea rdi, [rsp + 0xb9]
mov dword [rsp + 0x58], esi
jmp 0x407562
cmp edx, ebp
jne 0x4075c0
lea edx, [rbx + 1]
add esi, 1
mov word [rsp + rbx*2 + 0x130], ax
movsxd rbx, edx
cmp esi, r13d
jg 0x40760c
mov rcx, qword [r15]
mov r8d, esi
mov edx, r14d
mov r9, qword [rsp + 0x50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rdi
call qword [rax + 0x148]
test eax, eax
je 0x407606
movzx ecx, word [rsp + 0xba]
call sym.hb_cdpGetU16Ctrl
movzx edx, byte [rsp + 0xbc]
test ebx, ebx
mov word [rsp + 0xba], ax
mov dword [rsp + 0xbc], edx
jne 0x407544
mov ebp, edx
mov edx, 1
jmp 0x40754b
mov rax, qword [rsp + 0x60]
mov dword [rsp + 0x30], ebx
mov r9d, r14d
mov rcx, r15
mov rdx, qword [rsp + 0x68]
mov dword [rsp + 0x20], ebp
xor ebx, ebx
mov r8d, dword [rsp + 0x58]
mov qword [rsp + 0x28], rax
call sym.hb_gt_wvt_TextOut
mov ebp, dword [rsp + 0xbc]
mov dword [rsp + 0x58], esi
mov edx, 1
movzx eax, word [rsp + 0xba]
jmp 0x40754b
test ebx, ebx
je 0x407636
mov edx, ebx
mov dword [rsp + 0x30], edx
mov r8d, dword [rsp + 0x58]
mov r9d, r14d
mov rcx, r15
mov rdx, qword [rsp + 0x68]
lea rax, [rsp + 0x130]
mov dword [rsp + 0x20], ebp
mov qword [rsp + 0x28], rax
call sym.hb_gt_wvt_TextOut
add r14d, 1
cmp r14d, dword [rsp + 0x7c]
jne 0x407510
mov rbx, qword [rsp + 0x560]
mov r8d, dword [rsp + 0xd4]
mov edx, dword [rsp + 0xd0]
mov rcx, qword [r15 + 0x15b0]
mov dword [rsp + 0x40], 0xcc0020
mov r9d, dword [rsp + 0xd8]
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov rax, qword [r15 + 0x15d0]
sub r9d, edx
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0xdc]
sub eax, r8d
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rsp + 0x80]
mov rcx, r15
call sym.hb_gt_wvt_PaintGObjects
mov r9d, dword [r15 + 0x15e8]
test r9d, r9d
je 0x407755
cmp qword [r15 + 0x15f8], 0
je 0x4076d6
call sym.hb_vmRequestReenter
test eax, eax
jne 0x407bd2
mov rcx, qword [r15 + 0x14f0]
mov rdx, qword [rsp + 0x88]
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x406fc8
mov r9, rbp
mov r8, r12
mov edx, 0xf
mov rcx, rbx
call qword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x405832
cmp r12d, 8
jne 0x40793d
mov ecx, 0x12
call rbx
test ax, ax
js 0x407c06
mov ecx, 0x11
call rbx
test ax, ax
js 0x407bf4
mov ecx, 0x10
call rbx
test ax, ax
js 0x40832e
mov edx, 8
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov dword [r15 + 0x15e8], 1
jmp 0x4076d6
mov eax, dword [r15 + 0x1578]
mov r8d, edi
mov ecx, ebp
mov dword [r15 + 0x1580], edi
mov edx, dword [r15 + 0x157c]
mov dword [r15 + 0x1584], ebp
cmp eax, edi
cmovle r8, rax
cmp edx, ebp
cmovle ecx, edx
shl rcx, 0x20
or r8, rcx
cmp eax, edi
cmovl rax, rdi
cmp edx, ebp
mov qword [rsp + 0x90], r8
cmovl edx, ebp
lea rcx, [rsp + 0xa0]
shl rdx, 0x20
lea r8, [rsp + 0x90]
or rax, rdx
mov rdx, r15
mov qword [rsp + 0x98], rax
call sym.hb_gt_wvt_GetColRowFromXYRect
mov rax, qword [rsp + 0xa8]
mov r8d, dword [r15 + 0x48c]
mov rdx, qword [rsp + 0xa0]
mov ecx, dword [r15 + 0x490]
lea ebp, [rax + 1]
sar rax, 0x20
mov edi, r8d
imul ebp, r8d
mov rbx, rax
imul edi, edx
sar rdx, 0x20
add ebx, 1
mov esi, edx
imul ebx, ecx
imul esi, ecx
mov ecx, dword [r15 + 0x1588]
cmp edi, ecx
jne 0x40782b
cmp esi, dword [r15 + 0x158c]
je 0x407cf5
mov r12, qword [sym.imp.GDI32.dll_CreateRectRgn]
mov edx, dword [r15 + 0x158c]
mov r9d, dword [r15 + 0x1594]
mov r8d, dword [r15 + 0x1590]
call r12
mov r9d, ebx
mov r8d, ebp
mov edx, esi
mov r14, rax
mov ecx, edi
call r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov r13, rax
call r12
mov r9d, 3
mov r8, r13
mov rdx, r14
mov r12, rax
mov rcx, rax
call qword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
jne 0x4079cc
movd xmm3, ebx
movd xmm4, esi
movd xmm0, ebp
mov rbx, qword [sym.imp.GDI32.dll_DeleteObject]
movd xmm6, edi
punpckldq xmm0, xmm3
mov rcx, r14
punpckldq xmm6, xmm4
punpcklqdq xmm6, xmm0
call rbx
mov rcx, r13
call rbx
mov rcx, r12
call rbx
movups xmmword [r15 + 0x1588], xmm6
xor eax, eax
jmp 0x405832
mov ecx, dword [r15 + 0x24]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rdx, qword [rsp + 0x80]
mov r8, rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.USER32.dll_FillRect]
jmp 0x4074d1
mov rbx, qword [rsp + 0x70]
add rax, rax
lea r14, [rbx + rax]
lea r13, [rbx + rax + 2]
jmp 0x40725c
lea rax, [0x0042db80]
movsxd rcx, ecx
mov edx, dword [rax + rcx*4]
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
xor ecx, ecx
jmp 0x40741a
xor edi, edi
jmp 0x407410
xor r8d, r8d
jmp 0x4073ff
xor eax, eax
jmp 0x4073f3
cmp r12d, 0x7e
jle 0x40794c
mov edx, r12d
or edx, 0x43000000
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov ecx, 0x12
call rbx
test ax, ax
js 0x407c6f
mov ecx, 0x11
call rbx
test ax, ax
js 0x405d3f
mov ecx, 0x10
call rbx
mov edx, 0xd
mov rcx, r15
jmp 0x40794f
mov ecx, 0x12
call rbx
test ax, ax
js 0x407ce3
mov ecx, 0x11
call rbx
test ax, ax
js 0x407cd1
mov ecx, 0x10
call rbx
test ax, ax
js 0x4081a8
mov edx, 9
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov rcx, qword [r15 + 0x14f0]
call qword [sym.imp.USER32.dll_GetDC]
mov rdx, r12
mov rcx, rax
mov qword [rsp + 0x50], rax
call qword [sym.imp.GDI32.dll_InvertRgn]
mov r8, qword [rsp + 0x50]
mov rcx, qword [r15 + 0x14f0]
mov rdx, r8
call qword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x40788a
mov rcx, qword [r15 + 0x15b0]
sub eax, r8d
sub r9d, edx
mov dword [r15 + 0x15f0], 0
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x40], 0xcc0020
mov r11, qword [r15 + 0x15d0]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], r11
call qword [sym.imp.GDI32.dll_BitBlt]
lea rdx, [rsp + 0xd0]
mov rcx, qword [r15 + 0x14f0]
call qword [sym.imp.USER32.dll_ValidateRect]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 4
mov rcx, rax
mov rsi, rax
call sym.hb_arrayNew
mov r8d, dword [rsp + 0xd0]
mov rcx, rsi
mov edx, 1
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xd4]
mov rcx, rsi
mov edx, 2
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xd8]
mov rcx, rsi
mov edx, 3
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xdc]
mov rcx, rsi
mov edx, 4
call sym.hb_arraySetNI
mov r9, rsi
mov r8d, 0xe
mov rcx, r15
lea rdx, [r15 + 0x2178]
call sym.hb_gt_wvt_FireEvent.isra.9
jmp 0x406fc8
mov rcx, qword [r15 + 0x15b0]
mov dword [rsp + 0x38], r8d
sub eax, r8d
sub r9d, edx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x40], 0xcc0020
mov r11, qword [r15 + 0x15d0]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], r11
call qword [sym.imp.GDI32.dll_BitBlt]
lea rdx, [rsp + 0xd0]
mov rcx, qword [r15 + 0x14f0]
call qword [sym.imp.USER32.dll_ValidateRect]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 4
mov rcx, rax
mov rsi, rax
call sym.hb_arrayNew
mov r8d, dword [rsp + 0xd0]
mov rcx, rsi
mov edx, 1
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xd4]
mov rcx, rsi
mov edx, 2
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xd8]
mov rcx, rsi
mov edx, 3
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0xdc]
mov rcx, rsi
mov edx, 4
call sym.hb_arraySetNI
mov r9, rsi
mov rdx, rdi
mov rcx, r15
mov r8d, 0xe
call sym.hb_gt_wvt_FireEvent.isra.9
jmp 0x406fc8
cmp r12, 9
jne 0x407c18
test r9b, r9b
je 0x407c18
cwde
mov rcx, r15
cdq
and edx, 0x13
add edx, 0x194
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov rcx, qword [r15 + 0x15f8]
call sym.hb_vmPushDynSym
call sym.hb_vmPushNil
xor ecx, ecx
call sym.hb_vmDo
call sym.hb_vmRequestRestore
jmp 0x4076d6
mov edx, 0x7f
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov edx, 0x10e
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
cmp dx, 0x46
je 0x4082cd
shr ax, 0xf
test r8b, al
je 0x407c34
cmp ecx, 0x35
je 0x4082ef
or r13w, di
js 0x4081ba
cmp dword [r15 + 0x15c4], 0
je 0x406db5
mov rcx, qword [r15 + 0x14f0]
mov r9, rbp
mov r8, r12
mov edx, esi
call qword [sym.imp.USER32.dll_DefWindowProcW]
test rax, rax
setne al
movzx eax, al
jmp 0x405832
mov edx, 0x11c
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov edx, 0x192
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a2
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffec
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe2
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x194
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
mov edx, 0x1a5
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
cmp ebp, dword [r15 + 0x1590]
jne 0x40782b
cmp ebx, dword [r15 + 0x1594]
jne 0x40782b
xor eax, eax
jmp 0x405832
mov edx, r12d
jmp 0x40632d
mov edx, 0x1e
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a1
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x19b
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe3
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd9
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe8
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffde
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffea
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe0
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd3
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd1
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe4
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffda
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe6
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffdc
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd4
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd2
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe7
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffdd
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 2
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x19d
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x17
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x19f
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1f
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x199
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe5
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffdb
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffeb
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe1
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1d
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x197
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x191
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a0
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x18d
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x198
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffe9
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffdf
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x193
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a3
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff5
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff3
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffef
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff6
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov rcx, qword [r15 + 0x14f0]
mov r9, rbp
mov r8d, 0x73
mov edx, esi
call qword [sym.imp.USER32.dll_DefWindowProcW]
test rax, rax
setne al
movzx eax, al
jmp 0x405832
mov edx, 0xffffffd5
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffd6
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffed
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff1
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff2
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff4
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xffffffee
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0xfffffff0
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x10f
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c
lea rax, [r12 - 0x6a]
cmp rax, 1
jbe 0x4081d6
mov rax, r12
and rax, 0xfffffffffffffffd
cmp rax, 0x6d
jne 0x407c3e
test di, di
jns 0x4081e6
mov dword [r15 + 0x1530], 1
cmp r12, 0x6b
je 0x40828d
jbe 0x40825f
cmp r12, 0x6d
je 0x408237
cmp r12, 0x6f
jne 0x408230
mov dword [rsp + 0x20], 0x195
mov r9d, 0x1a4
mov edx, 0x2f
mov rcx, r15
mov r8d, 0x2f
call sym.hb_gt_wvt_TranslateKey
xor eax, eax
jmp 0x405832
xor eax, eax
jmp 0x405832
mov dword [rsp + 0x20], 0x18e
mov r9d, 0x14a
mov edx, 0x2d
mov rcx, r15
mov r8d, 0x2d
call sym.hb_gt_wvt_TranslateKey
xor eax, eax
jmp 0x405832
cmp r12, 0x6a
jne 0x408230
mov dword [rsp + 0x20], 0x196
mov r9d, 0x137
mov edx, 0x2a
mov rcx, r15
mov r8d, 0x2a
call sym.hb_gt_wvt_TranslateKey
xor eax, eax
jmp 0x405832
mov dword [rsp + 0x20], 0x190
mov r9d, 0x14e
mov edx, 0x2b
mov rcx, r15
mov r8d, 0x2b
call sym.hb_gt_wvt_TranslateKey
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
test r13w, r13w
js 0x408303
mov rcx, qword [r15 + 0x14f0]
mov r9, rbp
mov r8, r12
mov edx, esi
call qword [sym.imp.USER32.dll_DefWindowProcW]
xor eax, eax
jmp 0x405832
mov edx, 0x135
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x100
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
mov dword [r15 + 0x1530], 1
jmp 0x405832
call sym.hb_gt_wvt_AddCharToInputQueue
xor eax, eax
jmp 0x405832
mov edx, 0x1a7
mov rcx, r15
call sym.hb_gt_wvt_AddCharToInputQueue
jmp 0x405d4c