Function at 0x408340
Capabilities:
Inspect load icon resource

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x438
movsxd rax, dword [0x00435c88]
mov rsi, qword [rcx + rax*8 + 0x210]
cmp edx, 0x24
mov rbp, rcx
mov r12d, edx
mov rbx, r8
je 0x4093b0
jle 0x4086b0
cmp edx, 0x4a
je 0x409353
jle 0x4085a0
cmp edx, 0x6b
je 0x4093d0
jle 0x408540
cmp edx, 0x6e
je 0x409312
jle 0x408510
cmp edx, 0x70
je 0x409ff0
jl 0x409f40
cmp edx, 0x3e8
jne 0x408b14
mov rcx, qword [r8]
call sym.hb_itemGetNI
cmp eax, 0xd
ja case.0x4083e3.0
lea rdx, [0x0042dae4]
mov eax, eax
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je case.0x4083e3.0
pxor xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov qword [rbx + 8], rax
mov rcx, rax
call sym.hb_arrayNew
cmp r12d, 0x38
je 0x40a45c
mov rcx, qword [rbx + 8]
mov edx, 1
mov r8d, dword [rsp + 0x60]
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov edx, 2
mov r8d, dword [rsp + 0x64]
call sym.hb_arraySetNI
mov rcx, qword [rbx]
call sym.hb_itemType
test al, 0x1a
je 0x40846e
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test al, 0x1a
jne 0x40a535
mov rcx, qword [rbx]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
mov edx, 1
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 2
mov edi, eax
call sym.hb_arrayGetNI
test edi, edi
js case.0x4083e3.0
test eax, eax
js case.0x4083e3.0
cmp r12d, 0x38
jne 0x4084b9
imul edi, dword [rsi + 0x490]
imul eax, dword [rsi + 0x48c]
mov edx, edi
mov edi, eax
mov eax, edx
mov edx, dword [rsp + 0x6c]
mov r9d, eax
mov r8d, edi
sub edx, dword [rsp + 0x64]
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x30], 5
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x68]
sub edx, dword [rsp + 0x60]
mov dword [rsp + 0x20], edx
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, eax
call sym.hb_retl
mov eax, 1
add rsp, 0x438
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 0x6c
je 0x409d80
cmp edx, 0x6d
jne 0x408b14
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je case.0x4083e3.0
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4083e3.0
cmp edx, 0x67
je 0x409742
jle 0x408740
cmp edx, 0x69
je 0x409700
jg 0x409790
mov rcx, qword [r8]
call sym.hb_gt_ItemBase
test rax, rax
mov rbx, rax
je case.0x4083e3.0
movsxd rax, dword [0x00435c88]
xor edx, edx
mov rax, qword [rbx + rax*8 + 0x210]
mov rcx, qword [rax + 0x14f0]
call qword [sym.imp.USER32.dll_EnableWindow]
mov rcx, rbx
call sym.hb_gt_BaseFree
mov eax, 1
jmp 0x4084fa
cmp edx, 0x35
je 0x409873
jg 0x408af0
cmp edx, 0x30
je 0x4097c0
jle 0x408ac0
cmp edx, 0x32
je 0x409270
jl 0x40a1f0
cmp edx, 0x34
jne 0x408b14
mov rcx, qword [r8 + 8]
test rcx, rcx
je 0x408c74
mov edx, 2
call sym.hb_arrayNew
mov rcx, qword [rbx + 8]
mov edx, 2
mov r8d, dword [rsi + 0x490]
imul r8d, dword [rsi + 0x1c]
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov edx, 1
mov r8d, dword [rsi + 0x48c]
imul r8d, dword [rsi + 0x20]
call sym.hb_arraySetNI
mov rcx, qword [rbx]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_arrayLen
cmp rax, 2
jne case.0x4083e3.0
mov rcx, qword [rbx]
mov edx, 2
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 1
mov edi, eax
call sym.hb_arrayGetNI
test edi, edi
jle case.0x4083e3.0
xor edx, edx
cmp dword [rsi + 0x1534], 0
mov rcx, rbp
mov ebx, dword [rsi + 0x152c]
mov r9, qword [rbp]
setne dl
mov dword [rsi + 0x152c], edx
cdq
idiv dword [rsi + 0x48c]
mov r8d, eax
mov eax, edi
cdq
idiv dword [rsi + 0x490]
mov edx, eax
call qword [r9 + 0x40]
mov dword [rsi + 0x152c], ebx
mov eax, 1
jmp 0x4084fa
cmp edx, 0x14
je 0x409612
jle 0x408980
cmp edx, 0x1b
je 0x409530
jg 0x408930
cmp edx, 0x17
je 0x4094f1
jle 0x4088e2
cmp edx, 0x19
je 0x4093f2
jg 0x409650
mov rcx, qword [r8 + 8]
lea rbp, [rsi + 0x14a8]
xor edx, edx
mov r8, rbp
call sym.hb_itemPutStrU16
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test ah, 4
je case.0x4083e3.0
mov rcx, qword [rbx]
mov r9d, 0x20
mov r8, rbp
xor edx, edx
call sym.hb_itemCopyStrU16
xor eax, eax
mov word [rsi + 0x14e6], ax
mov eax, 1
jmp 0x4084fa
cmp edx, 0x65
je 0x409963
cmp edx, 0x66
jne 0x408b14
cmp qword [rsi + 0x14f0], 0
jne case.0x4083e3.0
mov rcx, qword [r8]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_arrayLen
cmp rax, 0xa
jne case.0x4083e3.0
mov rcx, qword [rbx]
mov edx, 1
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a7cf
mov rcx, qword [rbx]
mov edx, 2
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a7b8
mov rcx, qword [rbx]
mov edx, 3
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a7a1
mov rcx, qword [rbx]
mov edx, 4
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a78a
mov rcx, qword [rbx]
mov edx, 5
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a773
mov rcx, qword [rbx]
mov edx, 6
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a75c
mov rcx, qword [rbx]
mov edx, 7
call sym.hb_arrayGetItemPtr
mov rcx, rax
call sym.hb_itemType
test al, 1
jne 0x40a737
mov rcx, qword [rbx]
mov edx, 8
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x80
jne 0x40a720
mov rcx, qword [rbx]
mov edx, 9
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rdi, rax
call sym.hb_itemType
test al, 0x80
jne 0x40a60a
mov rcx, qword [rbx]
mov edx, 0xa
call sym.hb_arrayGetItemPtr
mov rcx, rax
mov rbx, rax
call sym.hb_itemType
test al, 0x1a
jne 0x40a5f3
mov rax, qword [rsi + 0x2148]
mov dword [rax + 0x28], 1
mov eax, 1
mov dword [rsi + 0x152c], 0
jmp 0x4084fa
cmp edx, 0x15
je 0x409ee0
cmp edx, 0x16
jne 0x408b14
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x14a0]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov dword [rsi + 0x14a0], eax
mov eax, 1
jmp 0x4084fa
cmp edx, 0x1f
je 0x409f30
jle 0x4089f0
cmp edx, 0x22
je 0x4093b0
jg 0x409f10
cmp edx, 0x20
mov ecx, 0xfffffff4
jne 0x408b14
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, qword [rbx + 8]
mov rdx, rax
call sym.hb_itemPutNInt
mov qword [rbx + 8], rax
jmp case.0x4083e3.0
cmp edx, 6
je 0x40a0d0
jle 0x408a61
cmp edx, 0xe
jg 0x408a10
cmp edx, 0xd
jge 0x408ace
cmp edx, 7
je 0x409930
cmp edx, 0xa
jne 0x408b14
call sym.hb_gt_winapi_getKbdState
mov rcx, qword [rbx + 8]
mov edx, eax
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov ecx, eax
call sym.hb_gt_winapi_setKbdState
mov eax, 1
jmp 0x4084fa
cmp edx, 0x1c
je 0x40a140
cmp edx, 0x1e
mov ecx, 0xfffffff6
je 0x40895c
jmp 0x408b14
cmp edx, 0xf
je 0x40a103
cmp edx, 0x13
jne 0x408b14
call qword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov rcx, qword [rbx + 8]
mov edx, eax
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov ecx, eax
call qword [sym.imp.USER32.dll_SetCaretBlinkTime]
mov eax, 1
jmp 0x4084fa
cmp edx, 2
je 0x409c70
jle 0x408b30
cmp edx, 4
je 0x409b82
cmp edx, 5
jne 0x408b14
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x149c]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov dword [rsi + 0x149c], eax
mov eax, 1
jmp 0x4084fa
cmp edx, 0x25
je 0x409f10
cmp edx, 0x2f
jne 0x408b14
mov rcx, qword [rbx + 8]
mov edx, 1
call sym.hb_itemPutL
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
cmp edx, 0x38
jle 0x408c30
cmp edx, 0x3f
je 0x40a260
cmp edx, 0x45
je 0x40a0b0
cmp edx, 0x3e
je 0x4096c1
mov r8, rbx
mov edx, r12d
mov rcx, rbp
call qword [0x00435b38]
jmp 0x4084fa
test edx, edx
je 0x408ace
cmp edx, 1
jne 0x408b14
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x48c]
imul edx, dword [rsi + 0x20]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemGetNI
test eax, eax
mov ebx, eax
jle case.0x4083e3.0
mov r15d, dword [rsi + 0x1534]
test r15d, r15d
jne case.0x4083e3.0
mov r14d, dword [rsi + 0x1564]
test r14d, r14d
jne case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
cdq
mov r9, qword [rbp]
mov rcx, rbp
idiv dword [rsi + 0x490]
mov r8d, dword [rsi + 0x20]
mov edx, eax
call qword [r9 + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetClientRect]
cmp dword [rsp + 0x58], ebx
je case.0x4083e3.0
lea rdx, [rsp + 0x60]
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r9d, dword [rsp + 0x64]
xor edx, edx
mov eax, dword [rsp + 0x6c]
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x30], 4
mov r8d, dword [rsp + 0x60]
sub eax, r9d
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x68]
sub eax, r8d
sub eax, dword [rsp + 0x58]
add ebx, eax
mov dword [rsp + 0x20], ebx
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r13d, dword [rsi + 0x1540]
test r13d, r13d
je 0x409d56
mov rcx, rsi
call sym.hb_gt_wvt_FitSizeRows.part.12
jmp case.0x4083e3.0
cmp edx, 0x37
jge 0x4083e5
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x1574]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov dword [rsi + 0x1574], eax
mov eax, 1
jmp 0x4084fa
call sym.hb_itemNew
mov rcx, rax
mov qword [rbx + 8], rax
jmp 0x4085e3
mov rcx, qword [rbx + 8]
mov edx, dword [rsi + 0x152c]
call sym.hb_itemPutL
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 8], rax
test rcx, rcx
je case.0x4083e3.0
mov edx, 1
call sym.hb_arrayGetL
mov rcx, qword [rbx + 0x10]
mov edx, 2
mov dword [rsi + 0x152c], eax
call sym.hb_arrayGetL
test eax, eax
je case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, rsi
call sym.hb_gt_wvt_ResetWindowSize
mov eax, 1
jmp 0x4084fa
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
mov edx, 1
call sym.hb_arrayGetNI
mov rcx, qword [rbx + 0x10]
mov edx, 2
mov ebp, eax
call sym.hb_arrayGetNI
test eax, eax
je 0x40a636
cmp eax, 1
mov rcx, qword [rbx + 0x10]
je 0x40a809
cmp eax, 2
je 0x40a7e5
mov rax, qword [rsi + 0x14f0]
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 4
mov qword [rsp + 0x20], 0
lea rbx, [rsp + 0x60]
mov dword [rsp + 0x60], 0x3c8
mov dword [rsp + 0x78], 0x977
mov qword [rsp + 0x68], rax
movabs rax, 0x700000063
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], 0
call sym.hb_arrayGetStrU16
lea rcx, [rsp + 0x88]
mov r8d, 0x7f
mov rdx, rax
call sym.hb_wstrncpy
mov rcx, qword [rsp + 0x50]
call sym.hb_strfree
mov rdx, rbx
mov ecx, ebp
call qword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov rcx, qword [rsi + 0x14f0]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je case.0x4083e3.0
call qword [sym.imp.USER32.dll_UpdateWindow]
mov eax, 1
jmp 0x4084fa
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemGetNI
mov rcx, qword [rsi + 0x14f0]
mov edx, eax
call qword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
jmp 0x4084fa
pxor xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 2
mov rcx, rax
mov qword [rbx + 8], rax
call sym.hb_arrayNew
mov rcx, qword [rbx + 8]
mov edx, 1
mov r8d, dword [rsp + 0x60]
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov edx, 2
mov r8d, dword [rsp + 0x64]
call sym.hb_arraySetNI
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
mov edx, 2
mov ebp, dword [rsp + 0x6c]
mov edi, dword [rsp + 0x68]
sub ebp, dword [rsp + 0x64]
sub edi, dword [rsp + 0x60]
call sym.hb_arrayGetNI
mov rcx, qword [rbx + 0x10]
mov edx, 1
mov r12d, eax
call sym.hb_arrayGetNI
mov rcx, qword [rsi + 0x14f0]
mov r9d, r12d
mov dword [rsp + 0x28], ebp
mov r8d, eax
mov dword [rsp + 0x30], 5
xor edx, edx
mov dword [rsp + 0x20], edi
call qword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, eax
call sym.hb_retl
jmp case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je case.0x4083e3.0
mov rax, qword [0x00435040]
cmp qword [rax + 0x510], 0
je case.0x4083e3.0
mov edx, 0xffffffec
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rcx, qword [rsi + 0x14f0]
mov edx, 0xffffffec
or rax, 0x80000
mov r8, rax
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov rcx, qword [rbx + 0x10]
mov rax, qword [0x00435040]
mov rdi, qword [rax + 0x510]
call sym.hb_itemGetNI
mov r9d, 2
mov edx, 0xffffff
mov rcx, qword [rsi + 0x14f0]
movzx r8d, al
call rdi
jmp case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemGetNI
sub eax, 1
cmp eax, 5
ja case.0x4083e3.0
lea rdx, [0x0042db1c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemGetNI
mov rcx, qword [rsi + 0x14f0]
movsxd rdx, eax
call qword [sym.imp.USER32.dll_KillTimer]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemGetNI
mov rcx, rsi
mov edx, eax
call sym.hb_gt_wvt_AddCharToInputQueue
mov eax, 1
jmp 0x4084fa
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov r14, qword [sym.imp.USER32.dll_PeekMessageW]
lea r12, [rsp + 0x60]
mov r13, qword [sym.imp.USER32.dll_IsDialogMessageW]
mov r15, qword [sym.imp.USER32.dll_TranslateMessage]
lea rbp, [rsi + 0x17e8]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 1
mov rcx, r12
call r14
test eax, eax
je case.0x4083e3.0
lea rbx, [rsi + 0x1658]
mov rcx, qword [rbx]
test rcx, rcx
je 0x4090a4
mov rdx, r12
call r13
test eax, eax
jne 0x40906d
add rbx, 8
cmp rbp, rbx
jne 0x409092
mov rcx, r12
call r15
mov rcx, r12
call qword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x409066
mov rdx, qword [rsi + 0x14f0]
test rdx, rdx
je case.0x4083e3.0
mov rcx, qword [rbx + 8]
call sym.hb_itemPutNInt
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
mov edx, 2
call sym.hb_arrayGetNI
mov rcx, qword [rbx + 0x10]
mov edx, 1
mov edi, eax
call sym.hb_arrayGetNI
mov rcx, qword [rsi + 0x14f0]
xor r9d, r9d
mov r8d, edi
movsxd rdx, eax
call qword [sym.imp.USER32.dll_SetTimer]
mov eax, 1
jmp 0x4084fa
cmp dword [rsi + 0x1540], 0
mov rcx, qword [rsi + 0x14f0]
je 0x40a621
xor r9d, r9d
mov r8d, 0xf030
mov edx, 0x112
call qword [sym.imp.USER32.dll_SendNotifyMessageW]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rsi + 0x14f0]
xor r9d, r9d
mov r8d, 0xf020
mov edx, 0x112
call qword [sym.imp.USER32.dll_SendNotifyMessageW]
mov eax, 1
jmp 0x4084fa
pxor xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [rsi + 0x14f0]
or rdx, 0xffffffffffffffff
mov dword [rsp + 0x30], 0x13
mov r9d, dword [rsp + 0x64]
mov dword [rsp + 0x28], 0
mov r8d, dword [rsp + 0x60]
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, eax
call sym.hb_retl
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rsi + 0x14f0]
mov edx, 1
call qword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
jmp 0x4084fa
pxor xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [rsi + 0x14f0]
mov rdx, 0xfffffffffffffffe
mov dword [rsp + 0x30], 0x13
mov r9d, dword [rsp + 0x64]
mov dword [rsp + 0x28], 0
mov r8d, dword [rsp + 0x60]
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, eax
call sym.hb_retl
mov eax, 1
jmp 0x4084fa
mov ecx, dword [rsi + 0x2164]
xor edx, edx
test ecx, ecx
mov rcx, qword [r8 + 8]
sete dl
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetL
test eax, eax
mov eax, dword [rsi + 0x2164]
je 0x40a499
test eax, eax
setne dl
test dl, dl
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
test eax, eax
sete al
movzx eax, al
mov dword [rsi + 0x2164], eax
test rcx, rcx
je case.0x4083e3.0
xor edx, edx
call qword [sym.imp.USER32.dll_GetSystemMenu]
test rax, rax
je case.0x4083e3.0
xor r8d, r8d
cmp dword [rsi + 0x2164], 1
mov edx, 0xf060
mov rcx, rax
setg r8b
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rsi + 0x2178]
test rcx, rcx
je 0x40932e
call sym.hb_itemRelease
mov qword [rsi + 0x2178], 0
mov rcx, qword [rbx]
call sym.hb_itemType
test ah, 0x10
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemNew
mov qword [rsi + 0x2178], rax
jmp case.0x4083e3.0
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x2164]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
cmp eax, 2
ja case.0x4083e3.0
cmp dword [rsi + 0x2164], eax
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
mov dword [rsi + 0x2164], eax
test rcx, rcx
jne 0x4092db
jmp case.0x4083e3.0
mov edx, dword [rsi + 0x1c]
mov rcx, qword [rbx + 8]
call sym.hb_itemPutNI
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
mov eax, dword [rsi + 0x1548]
test eax, eax
je case.0x4083e3.0
mov dword [rsi + 0x153c], 1
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x1520]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
cmp dword [rsi + 0x1520], eax
mov ebx, eax
je case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je 0x4094e6
mov r8d, dword [rsi + 0x1498]
test r8d, r8d
jle 0x40a5e0
lea r9, [rsp + 0x68]
mov edx, dword [rsi + 0x149c]
xor eax, eax
mov ecx, 0xa
mov r10d, dword [rsi + 0x14a4]
lea rbp, [rsp + 0x60]
mov rdi, r9
mov r11d, dword [rsi + 0x14a0]
rep stosq qword [rdi], rax
lea rcx, [rsp + 0x7c]
mov eax, edx
sar eax, 0x1f
xor edx, eax
mov dword [rdi], 0
mov dword [rsp + 0x64], edx
lea rdx, [rsi + 0x14a8]
mov dword [rsp + 0x60], r8d
mov r8d, 0x1f
mov dword [rsp + 0x70], r11d
sub dword [rsp + 0x64], eax
mov byte [rsp + 0x7a], r10b
mov byte [rsp + 0x77], bl
mov byte [rsp + 0x7b], 0x31
call sym.hb_wstrncpy
mov rcx, rbp
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov rdi, rax
test rdi, rdi
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14e8]
test rcx, rcx
je 0x4094df
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rsi + 0x14e8], rdi
mov dword [rsi + 0x1520], ebx
jmp case.0x4083e3.0
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x14a4]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov dword [rsi + 0x14a4], eax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test ah, 4
je 0x4095f4
mov r12d, dword [rsi + 0x1508]
xor ebp, ebp
test r12d, r12d
je 0x409556
mov rbp, qword [rsi + 0x1500]
mov rcx, qword [rbx]
lea r8, [rsp + 0x60]
xor r9d, r9d
xor edx, edx
mov dword [rsi + 0x1508], 1
call sym.hb_itemGetStrU16
xor r9d, r9d
xor ecx, ecx
mov r8d, 1
mov rdx, rax
mov dword [rsp + 0x28], 0x50
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_LoadImageW]
mov qword [rsi + 0x1500], rax
mov rcx, qword [rsp + 0x60]
call sym.hb_strfree
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je 0x4095e6
mov r9, qword [rsi + 0x1500]
xor r8d, r8d
mov edx, pe_nt_image_headers64
mov rdi, qword [sym.imp.USER32.dll_SendNotifyMessageW]
call rdi
mov rcx, qword [rsi + 0x14f0]
mov r8d, 1
mov edx, pe_nt_image_headers64
mov r9, qword [rsi + 0x1500]
call rdi
test rbp, rbp
je 0x4095f4
mov rcx, rbp
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rdx, qword [rsi + 0x1500]
mov rcx, qword [rbx + 8]
call sym.hb_itemPutNInt
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
call qword [sym.imp.USER32.dll_GetDesktopWindow]
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x6c]
sub eax, dword [rsp + 0x64]
cdq
idiv dword [rsi + 0x490]
mov rcx, qword [rbx + 8]
mov edx, eax
call sym.hb_itemPutNI
mov qword [rbx + 8], rax
jmp case.0x4083e3.0
mov rcx, qword [r8 + 8]
xor edx, edx
mov r8, qword [rsi + 0x1518]
call sym.hb_itemPutStrU16
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test ah, 4
je case.0x4083e3.0
mov rcx, qword [rsi + 0x1510]
call sym.hb_strfree
mov rcx, qword [rbx]
xor r9d, r9d
xor edx, edx
lea r8, [rsi + 0x1510]
call sym.hb_itemGetStrU16
mov rcx, qword [rsi + 0x14f0]
mov qword [rsi + 0x1518], rax
test rcx, rcx
je case.0x4083e3.0
mov rdx, rax
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x1568]
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetL
mov dword [rsi + 0x1568], eax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_gt_ItemBase
test rax, rax
mov rbx, rax
je case.0x4083e3.0
movsxd rax, dword [0x00435c88]
mov rax, qword [rbx + rax*8 + 0x210]
mov rcx, qword [rax + 0x14f0]
call qword [sym.imp.USER32.dll_SetFocus]
mov rcx, rbx
call sym.hb_gt_BaseFree
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_gt_ItemBase
test rax, rax
mov rbx, rax
je case.0x4083e3.0
movsxd rax, dword [0x00435c88]
mov edx, 1
mov rax, qword [rbx + rax*8 + 0x210]
mov rcx, qword [rax + 0x14f0]
call qword [sym.imp.USER32.dll_EnableWindow]
mov rcx, rbx
call sym.hb_gt_BaseFree
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test al, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetL
mov dword [rsi + 0x2150], eax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test ah, 4
je 0x40a2b7
mov rcx, qword [rbx + 8]
xor edx, edx
mov r8, qword [rsi + 0x1558]
call sym.hb_itemPutStrU16
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemGetCLen
test rax, rax
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je 0x40a4e5
xor edx, edx
call qword [sym.imp.USER32.dll_GetSystemMenu]
test rax, rax
mov rdi, rax
je 0x40a4d7
mov rcx, qword [rsi + 0x1550]
call sym.hb_strfree
mov rcx, qword [rbx]
xor r9d, r9d
xor edx, edx
lea r8, [rsi + 0x1550]
call sym.hb_itemGetStrU16
xor r8d, r8d
mov edx, 0x3e8
mov rcx, rdi
mov qword [rsi + 0x1558], rax
mov r9d, 0x3e8
mov dword [rsi + 0x1548], 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_ModifyMenuW]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test al, 0x1a
jne 0x40a3e5
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x40a4c6
mov edx, 0x10
mov ebp, 1
call sym.hb_arrayNew
nop
mov r8d, dword [rsi + rbp*4 + 0x20]
mov rdx, rbp
add rbp, 1
mov rcx, qword [rbx + 8]
call sym.hb_arraySetNL
cmp rbp, 0x11
jne 0x4098a0
mov rcx, qword [rbx]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_arrayLen
cmp rax, 0x10
jne case.0x4083e3.0
mov ebp, 1
mov rcx, qword [rbx]
mov rdx, rbp
call sym.hb_arrayGetNL
mov dword [rsi + rbp*4 + 0x20], eax
add rbp, 1
cmp rbp, 0x11
jne 0x4098e3
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov rcx, qword [rsi]
xor r8d, r8d
mov edx, dword [rsi + 0x20]
mov r9d, dword [rsi + 0x1c]
mov rax, qword [rcx]
mov dword [rsp + 0x20], edx
xor edx, edx
call qword [rax + 0x60]
mov eax, 1
jmp 0x4084fa
call qword [sym.imp.USER32.dll_GetDesktopWindow]
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rsp + 0x6c]
mov rcx, qword [rbx + 8]
sub edx, dword [rsp + 0x64]
call sym.hb_itemPutNI
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8 + 8]
xor edx, edx
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
lea r12, [rsp + 0x50]
mov edx, 5
mov r15d, dword [rsi + 0x1520]
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 4
mov dword [rsp + 0x40], eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 3
mov dword [rsp + 0x4c], eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 2
mov r13d, eax
call sym.hb_arrayGetNI
xor r8d, r8d
mov edx, 1
mov r9, r12
mov qword [rsp + 0x20], 0
mov rcx, qword [rbx]
mov r14d, eax
call sym.hb_arrayGetStrU16
test r14d, r14d
mov rdx, rax
jle 0x40a4a3
lea r8, [rsp + 0x68]
xor eax, eax
mov ecx, 0xa
lea r9, [rsp + 0x60]
mov rdi, r8
mov r8d, 0x1f
rep stosq qword [rdi], rax
movzx eax, byte [rsp + 0x40]
lea rcx, [rsp + 0x7c]
mov qword [rsp + 0x40], r9
mov dword [rdi], 0
mov edi, dword [rsp + 0x4c]
mov byte [rsp + 0x7a], al
mov eax, r13d
sar eax, 0x1f
mov byte [rsp + 0x77], r15b
xor r13d, eax
mov byte [rsp + 0x7b], 0x31
mov dword [rsp + 0x64], r13d
sub dword [rsp + 0x64], eax
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x60], r14d
call sym.hb_wstrncpy
mov r9, qword [rsp + 0x40]
mov rcx, r9
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov r13, rax
mov rcx, qword [rsp + 0x50]
call sym.hb_strfree
test r13, r13
je case.0x4083e3.0
mov rcx, qword [rbx + 8]
mov edx, 1
call sym.hb_itemPutL
mov r9, r12
xor r8d, r8d
mov edx, 1
mov qword [rbx + 8], rax
mov qword [rsp + 0x20], 0
mov rcx, qword [rbx]
call sym.hb_arrayGetStrU16
mov r8d, 0x1f
lea rcx, [rsi + 0x14a8]
mov rdx, rax
call sym.hb_wstrncpy
mov rcx, qword [rsp + 0x50]
call sym.hb_strfree
mov rcx, qword [rbx]
mov edx, 2
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 3
mov dword [rsi + 0x1498], eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 4
mov dword [rsi + 0x149c], eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 5
mov dword [rsi + 0x14a0], eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 3
mov dword [rsi + 0x14a4], eax
call sym.hb_arrayGetNI
mov r8d, dword [rsi + 0x20]
mov r9, r13
mov edx, dword [rsi + 0x1c]
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x20], eax
call sym.hb_gt_wvt_ValidWindowSize
test eax, eax
je 0x409b74
cmp qword [rsi + 0x14f0], 0
je 0x409b74
mov rcx, rsi
call sym.hb_gt_wvt_ResetWindowSize
mov rcx, rsi
call sym.hb_gt_wvt_UpdateCaret
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x90]
mov rcx, rsi
call sym.hb_wvt_gtSaveGuiState
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x4083e3.0
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x490]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemGetNI
test eax, eax
mov ebx, eax
jle case.0x4083e3.0
lea r12, [rsp + 0x60]
mov edx, dword [rsi + 0x149c]
xor eax, eax
mov ecx, 0xa
lea r8, [r12 + 8]
mov r10d, dword [rsi + 0x1520]
mov rdi, r8
mov r9d, dword [rsi + 0x14a4]
mov r8d, 0x1f
mov r11d, dword [rsi + 0x14a0]
rep stosq qword [rdi], rax
lea rcx, [r12 + 0x1c]
mov eax, edx
sar eax, 0x1f
xor edx, eax
mov dword [rdi], 0
mov dword [rsp + 0x64], edx
lea rdx, [rsi + 0x14a8]
sub dword [rsp + 0x64], eax
mov dword [rsp + 0x70], r11d
mov byte [rsp + 0x77], r10b
mov byte [rsp + 0x7a], r9b
mov byte [rsp + 0x7b], 0x31
mov dword [rsp + 0x60], ebx
call sym.hb_wstrncpy
mov rcx, r12
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
test rax, rax
mov r13, rax
je case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
mov dword [rsi + 0x1498], ebx
je 0x40a54d
mov rcx, rsi
call sym.hb_gt_wvt_ResetWindowSize
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x90]
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteObject]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x490]
imul edx, dword [rsi + 0x1c]
call sym.hb_itemPutNI
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemGetNI
test eax, eax
mov ebx, eax
jle case.0x4083e3.0
mov eax, dword [rsi + 0x1534]
test eax, eax
jne case.0x4083e3.0
mov eax, dword [rsi + 0x1564]
test eax, eax
jne case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je case.0x4083e3.0
mov eax, ebx
mov r9, qword [rbp]
mov rcx, rbp
cdq
mov r8d, dword [rsi + 0x20]
idiv dword [rsi + 0x490]
mov edx, eax
call qword [r9 + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetClientRect]
cmp dword [rsp + 0x5c], ebx
je case.0x4083e3.0
lea rdx, [rsp + 0x60]
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r9d, dword [rsp + 0x64]
xor edx, edx
mov eax, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x60]
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x30], 4
sub eax, r9d
sub eax, dword [rsp + 0x5c]
add ebx, eax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x28], ebx
sub eax, r8d
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [rsi + 0x1540]
test eax, eax
jne 0x408c23
mov dword [rsi + 0x2158], 0
mov rcx, qword [rsi + 0x14f0]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je 0x409e12
pxor xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
xor ecx, ecx
call sym.hb_itemNew
mov edx, 4
mov rcx, rax
mov qword [rbx + 8], rax
call sym.hb_arrayNew
mov rcx, qword [rbx + 8]
mov edx, 1
mov r8d, dword [rsp + 0x60]
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov edx, 2
mov r8d, dword [rsp + 0x64]
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov edx, 3
mov r8d, dword [rsp + 0x68]
sub r8d, dword [rsp + 0x60]
call sym.hb_arraySetNI
mov r8d, dword [rsp + 0x6c]
mov edx, 4
mov rcx, qword [rbx + 8]
sub r8d, dword [rsp + 0x64]
call sym.hb_arraySetNI
mov rcx, qword [rbx]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_arrayLen
cmp rax, 2
jne case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemType
test ah, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_arrayLen
cmp rax, 2
jne case.0x4083e3.0
mov rcx, qword [rbx]
mov edx, 1
call sym.hb_arrayGetNI
mov rcx, qword [rbx]
mov edx, 2
mov edi, eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx + 0x10]
mov edx, 1
mov ebp, eax
call sym.hb_arrayGetNI
mov rcx, qword [rbx + 0x10]
mov edx, 2
mov r12d, eax
call sym.hb_arrayGetNI
mov r9d, ebp
mov r8d, edi
xor edx, edx
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x30], 0x34
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r12d
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, rsi
call sym.hb_gt_wvt_FitSize
mov rcx, rsi
call sym.hb_wvt_gtSaveGuiState
mov eax, 1
jmp 0x4084fa
call qword [sym.imp.USER32.dll_GetDesktopWindow]
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x68]
sub eax, dword [rsp + 0x60]
cdq
idiv dword [rsi + 0x48c]
jmp 0x409635
mov edx, dword [rsi + 0x20]
mov rcx, qword [rbx + 8]
call sym.hb_itemPutNI
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
mov ecx, 0xfffffff5
jmp 0x40895c
mov edx, dword [rsi + 0x1544]
mov rcx, qword [r8 + 8]
call sym.hb_itemPutL
cmp qword [rsi + 0x14f0], 0
mov qword [rbx + 8], rax
je case.0x4083e3.0
mov rcx, qword [rbx]
test rcx, rcx
je case.0x4083e3.0
call sym.hb_itemGetL
mov rcx, qword [rsi + 0x14f0]
mov edx, 0xfffffff0
mov ebx, eax
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
test ebx, ebx
mov r8, rax
jne 0x40a440
mov r9d, dword [rsi + 0x1544]
test r9d, r9d
je 0x409fa4
and r8, 0xfffffffffffeffff
mov rcx, qword [rsi + 0x14f0]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x14f0]
mov dword [rsp + 0x30], 0x2037
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_SetWindowPos]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je case.0x4083e3.0
lea rdx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetClientRect]
lea rdx, [rsp + 0x60]
mov rcx, qword [rsi + 0x14f0]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x68]
xor ecx, ecx
sub eax, dword [rsp + 0x60]
sub eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x50]
mov ebp, dword [rsp + 0x6c]
sub ebp, dword [rsp + 0x64]
sub ebp, dword [rsp + 0x5c]
mov esi, eax
add ebp, dword [rsp + 0x54]
shr esi, 0x1f
add esi, eax
call sym.hb_itemNew
mov edx, 4
sar esi, 1
mov rcx, rax
mov qword [rbx + 8], rax
call sym.hb_arrayNew
mov rcx, qword [rbx + 8]
mov r8d, esi
mov edx, 1
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov r8d, ebp
mov edx, 2
sub r8d, esi
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov r8d, esi
mov edx, 3
call sym.hb_arraySetNI
mov rcx, qword [rbx + 8]
mov r8d, esi
mov edx, 4
call sym.hb_arraySetNI
mov eax, 1
jmp 0x4084fa
mov rdx, qword [rsi + 0x14f0]
mov rcx, qword [r8 + 8]
call sym.hb_itemPutPtr
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
call qword [sym.imp.USER32.dll_GetDesktopWindow]
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rbx + 8]
sub edx, dword [rsp + 0x60]
call sym.hb_itemPutNI
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test ah, 4
jne 0x40a331
cmp qword [rbx + 8], 0
je 0x40a4b6
mov rdx, qword [rbx + 8]
mov ecx, 0xd
call sym.hb_gt_winapi_getClipboard
mov eax, 1
jmp 0x4084fa
mov rcx, qword [r8]
call sym.hb_itemType
test ah, 4
je 0x40a348
mov edi, dword [rsi + 0x1508]
xor ebp, ebp
test edi, edi
je 0x40a164
mov rbp, qword [rsi + 0x1500]
mov rcx, qword [rbx]
lea r8, [rsp + 0x60]
xor r9d, r9d
xor edx, edx
mov dword [rsi + 0x1508], 0
call sym.hb_itemGetStrU16
mov rcx, qword [rsi + 0x10]
mov rdx, rax
call qword [sym.imp.USER32.dll_LoadIconW]
mov qword [rsi + 0x1500], rax
mov rcx, qword [rsp + 0x60]
call sym.hb_strfree
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je 0x4095e6
mov r9, qword [rsi + 0x1500]
xor r8d, r8d
mov edx, pe_nt_image_headers64
mov r12, qword [sym.imp.USER32.dll_SendNotifyMessageW]
call r12
mov rcx, qword [rsi + 0x14f0]
mov r8d, 1
mov edx, pe_nt_image_headers64
mov r9, qword [rsi + 0x1500]
call r12
jmp 0x4095e6
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x1540]
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
test rcx, rcx
je case.0x4083e3.0
call sym.hb_itemGetL
cmp dword [rsi + 0x1540], eax
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
mov dword [rsi + 0x1540], eax
test rcx, rcx
je case.0x4083e3.0
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov r8d, dword [rsi + 0x1540]
test r8d, r8d
je 0x40a520
or rax, 0x70000
mov r8, rax
jmp 0x409fa4
mov rcx, qword [r8 + 8]
mov edx, dword [rsi + 0x1564]
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x80
je case.0x4083e3.0
mov rcx, qword [rbx]
call sym.hb_itemGetL
cmp eax, dword [rsi + 0x1564]
je case.0x4083e3.0
cmp qword [rsi + 0x14f0], 0
je 0x40a5c8
mov rcx, rbp
call sym.hb_gt_wvt_FullScreen
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx + 8]
mov edx, dword [rsi + 0x1548]
call sym.hb_itemPutL
mov rcx, qword [rbx]
mov qword [rbx + 8], rax
test rcx, rcx
je case.0x4083e3.0
call sym.hb_itemGetL
cmp dword [rsi + 0x1548], eax
mov ebx, eax
je case.0x4083e3.0
mov rcx, qword [rsi + 0x14f0]
test rcx, rcx
je 0x40a5b8
xor edx, edx
call qword [sym.imp.USER32.dll_GetSystemMenu]
test rax, rax
je case.0x4083e3.0
xor r8d, r8d
test ebx, ebx
mov edx, 0x3e8
sete r8b
mov rcx, rax
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov dword [rsi + 0x1548], ebx
mov eax, 1
jmp 0x4084fa
mov rdx, qword [rbx]
mov ecx, 0xd
call sym.hb_gt_winapi_setClipboard
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx]
call sym.hb_itemType
test al, 0x1a
je 0x4095f4
mov r11d, dword [rsi + 0x1508]
xor edi, edi
test r11d, r11d
je 0x40a36d
mov rdi, qword [rsi + 0x1500]
mov dword [rsi + 0x1508], 0
mov rcx, qword [rbx]
call sym.hb_itemGetNInt
mov rcx, qword [rsi + 0x10]
movzx edx, ax
call qword [sym.imp.USER32.dll_LoadIconW]
mov rcx, qword [rsi + 0x14f0]
mov qword [rsi + 0x1500], rax
test rcx, rcx
je 0x40a3ce
mov r9, rax
xor r8d, r8d
mov edx, pe_nt_image_headers64
mov rbp, qword [sym.imp.USER32.dll_SendNotifyMessageW]
call rbp
mov rcx, qword [rsi + 0x14f0]
mov r8d, 1
mov edx, pe_nt_image_headers64
mov r9, qword [rsi + 0x1500]
call rbp
test rdi, rdi
je 0x4095f4
mov rcx, rdi
call qword [sym.imp.USER32.dll_DestroyIcon]
jmp 0x4095f4
mov rcx, qword [rbx]
call sym.hb_itemGetNI
cmp eax, 0xf
ja case.0x4083e3.0
cdqe
mov rcx, qword [rbx + 8]
lea rdi, [rsi + rax*4]
mov edx, dword [rdi + 0x24]
call sym.hb_itemPutNL
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 8], rax
call sym.hb_itemType
test al, 0x1a
je case.0x4083e3.0
mov rcx, qword [rbx + 0x10]
call sym.hb_itemGetNL
mov dword [rdi + 0x24], eax
cmp qword [rsi + 0x14f0], 0
jne 0x40990a
jmp case.0x4083e3.0
mov r10d, dword [rsi + 0x1544]
test r10d, r10d
jne 0x409fa4
or r8, 0x10000
jmp 0x409fa4
mov eax, dword [rsp + 0x64]
mov rcx, qword [rbx + 8]
cdq
idiv dword [rsi + 0x490]
mov edx, 1
mov r8d, eax
call sym.hb_arraySetNI
mov eax, dword [rsp + 0x60]
mov rcx, qword [rbx + 8]
cdq
idiv dword [rsi + 0x48c]
mov edx, 2
mov r8d, eax
call sym.hb_arraySetNI
jmp 0x408451
test eax, eax
sete dl
jmp 0x4092b5
mov ecx, 0xa
call qword [sym.imp.GDI32.dll_GetStockObject]
mov r13, rax
jmp 0x409a6e
xor ecx, ecx
call sym.hb_itemNew
mov qword [rbx + 8], rax
jmp 0x40a11f
call sym.hb_itemNew
mov rcx, rax
mov qword [rbx + 8], rax
jmp 0x409890
cmp qword [rsi + 0x14f0], 0
jne case.0x4083e3.0
mov rcx, qword [rsi + 0x1550]
call sym.hb_strfree
mov rcx, qword [rbx]
xor r9d, r9d
xor edx, edx
lea r8, [rsi + 0x1550]
call sym.hb_itemGetStrU16
mov dword [rsi + 0x1548], 1
mov qword [rsi + 0x1558], rax
mov eax, 1
jmp 0x4084fa
and rax, 0xffffffffff7affff
mov r8, rax
or r8, 0x800000
jmp 0x409fa4
mov rcx, qword [rbx]
call sym.hb_itemGetNI
mov rcx, qword [rbx + 0x10]
mov edi, eax
call sym.hb_itemGetNI
jmp 0x408497
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rdi, rax
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDC]
mov rdx, r13
mov rbp, qword [sym.imp.GDI32.dll_SelectObject]
mov rbx, rax
mov rcx, rax
call rbp
xor edx, edx
mov rcx, rbx
mov r14, rax
call qword [sym.imp.GDI32.dll_SetTextCharacterExtra]
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetTextMetricsW]
mov rdx, r14
mov rcx, rbx
call rbp
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [rsp + 0x74]
mov dword [rsi + 0x48c], eax
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x490], eax
jmp 0x409c5b
mov dword [rsi + 0x1548], eax
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx]
call sym.hb_itemGetL
mov dword [rsi + 0x1564], eax
mov eax, 1
jmp 0x4084fa
mov ecx, 0xa
call qword [sym.imp.GDI32.dll_GetStockObject]
mov rdi, rax
jmp 0x4094c4
mov rdi, qword [rsi + 0x2148]
mov rcx, rbx
call sym.hb_itemGetNI
mov dword [rdi + 0x2c], eax
jmp 0x4088c0
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetL
mov dword [rbp + 0x24], eax
jmp 0x4088a0
mov edx, 9
call qword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
jmp 0x4084fa
mov rcx, qword [rbx + 0x10]
lea r12, [rsp + 0x50]
xor r8d, r8d
mov edx, 3
mov qword [rsp + 0x20], 0
mov r9, r12
call sym.hb_arrayGetStrU16
xor ecx, ecx
xor r9d, r9d
mov r8d, 1
mov dword [rsp + 0x28], 0x10
mov rdx, rax
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_LoadImageW]
mov rcx, qword [rsp + 0x50]
mov rdi, rax
call sym.hb_strfree
mov rcx, qword [rbx + 0x10]
mov r9, r12
xor r8d, r8d
mov edx, 4
mov rax, qword [rsi + 0x14f0]
mov dword [rsp + 0x60], 0x3c8
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x78], 0x977
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x68], rax
movabs rax, 0x700000063
mov qword [rsp + 0x70], rax
call sym.hb_arrayGetStrU16
mov r8d, 0x7f
lea rcx, [rsp + 0x88]
mov rdx, rax
call sym.hb_wstrncpy
mov rcx, qword [rsp + 0x50]
call sym.hb_strfree
mov rdx, rbx
mov ecx, ebp
call qword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
test rdi, rdi
je case.0x408fcc.5
mov rcx, rdi
call qword [sym.imp.USER32.dll_DestroyIcon]
jmp case.0x408fcc.5
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetL
mov dword [rbp + 0x20], eax
jmp 0x408880
mov rcx, qword [rbx]
mov edx, 7
call sym.hb_arrayGetItemPtr
mov rdi, qword [rsi + 0x2148]
mov rcx, rax
call sym.hb_itemNew
mov qword [rdi + 0x18], rax
jmp 0x408860
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetNI
mov dword [rbp + 0x14], eax
jmp 0x408843
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetNI
mov dword [rbp + 0x10], eax
jmp 0x408823
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetNI
mov dword [rbp + 0xc], eax
jmp 0x408803
mov rbp, qword [rsi + 0x2148]
mov rcx, rdi
call sym.hb_itemGetNI
mov dword [rbp + 8], eax
jmp 0x4087e3
mov rcx, rdi
call sym.hb_itemGetNInt
mov rdx, qword [rsi + 0x2148]
mov dword [rdx + 4], eax
jmp 0x4087c3
mov rcx, rdi
call sym.hb_itemGetNInt
mov rdx, qword [rsi + 0x2148]
mov dword [rdx], eax
jmp 0x4087a3
lea r12, [rsp + 0x50]
mov edx, 3
call sym.hb_arrayGetNInt
mov rcx, qword [rsi + 0x10]
movzx edx, ax
call qword [sym.imp.USER32.dll_LoadIconW]
mov rdi, rax
jmp 0x40a689
lea r12, [rsp + 0x50]
xor r8d, r8d
mov edx, 3
mov qword [rsp + 0x20], 0
mov r9, r12
call sym.hb_arrayGetStrU16
mov rcx, qword [rsi + 0x10]
mov rdx, rax
call qword [sym.imp.USER32.dll_LoadIconW]
mov rcx, qword [rsp + 0x50]
mov rdi, rax
call sym.hb_strfree
jmp 0x40a689