Function at 0x14003edc0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x628]
sub rsp, 0x728
mov rax, qword [0x140144038]
xor rax, rsp
mov qword [rbp + 0x610], rax
mov r14, r8
mov qword [rbp - 0x20], r8
mov qword [rbp], rdx
mov r15, rcx
mov qword [rbp + 0x10], rcx
mov qword [rsp + 0x68], r9
mov rcx, qword [rbp + 0x698]
mov qword [rbp + 0x80], rcx
mov rcx, qword [rbp + 0x6a0]
mov qword [rbp + 0x48], rcx
mov rcx, qword [rbp + 0x6a8]
mov qword [rbp + 0x18], rcx
mov ebx, dword [rbp + 0x6b0]
test r9, r9
je 0x1400418df
test rdx, rdx
je 0x1400418df
mov rcx, r8
call qword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1400418df
mov esi, dword [rbp + 0x6b8]
mov edi, esi
shr edi, 0xa
not dil
and dil, 1
mov dword [rbp - 0x70], edi
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x7c], r12d
mov dword [rbp - 0x58], r12d
mov dword [rbp - 0x54], 0xa
lea ecx, [rax + 0x50]
call fcn.1400a95e8
mov qword [rbp - 0x60], rax
mov eax, r12d
mov dword [rbp - 0x50], eax
mov dword [rbp - 8], eax
mov dword [rbp - 4], 0xa
lea ecx, [r12 + 0x50]
call fcn.1400a95e8
mov qword [rbp - 0x10], rax
mov eax, r12d
mov dword [rbp - 0x64], eax
mov dword [rbp - 0x28], eax
mov dword [rbp - 0x24], 0xa
lea ecx, [r12 + 0x50]
call fcn.1400a95e8
mov qword [rbp - 0x30], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
lea rdx, [rbp + 0xd0]
mov rcx, r15
call qword [sym.imp.GDI32.dll_GetClipBox]
lea rcx, [rbp + 0xd0]
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov qword [rbp + 0x98], rax
mov rcx, r14
call qword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov qword [rbp + 0xa8], rax
lea ecx, [r12 + 1]
test dil, dil
je 0x14003ef1b
mov r8d, ecx
mov rdx, rax
mov rcx, r15
call qword [sym.imp.GDI32.dll_ExtSelectClipRgn]
mov edx, ebx
mov rdi, qword [rbp]
mov rcx, rdi
call fcn.1400155e0
mov qword [rbp + 0x20], rax
test rax, rax
jne 0x14003ef3e
mov rcx, rdi
call fcn.140014580
mov qword [rbp + 0x20], rax
lea r12, [rax + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rax]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rbp + 0xa0], rax
mov edx, 1
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [rbp + 0x690]
movzx edx, ax
and edx, 0xffffff00
mov ecx, eax
shr ecx, 0x10
movzx r8d, cl
or edx, r8d
movzx ecx, al
shl ecx, 0x10
or edx, ecx
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
mov r8d, dword [rdi + 0x628]
movzx edx, r8w
and edx, 0xffffff00
mov eax, r8d
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, r8b
shl eax, 0x10
or edx, eax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetBkColor]
test sil, 0xf
je 0x14003f0de
bt esi, 0xa
jb 0x14003f0de
movdqa xmm0, xmmword [0x140128fe0]
movdqu xmmword [rbp + 0xb0], xmm0
xor ecx, ecx
mov dword [rbp + 8], ecx
mov eax, esi
bts eax, 0xa
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ebx
lea rax, [rbp + 8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rcx
mov eax, dword [rbp + 0x690]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x68]
lea r8, [rbp + 0xb0]
mov rdx, rdi
mov rcx, r15
call fcn.14003edc0
test sil, 0x20
je 0x14003f086
mov r10d, dword [rbp + 0xb8]
mov r9d, dword [rbp + 0xb0]
test sil, 1
je 0x14003f076
mov eax, dword [r14 + 8]
sub eax, dword [r14]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r10d
sub eax, r9d
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
add ecx, dword [r14]
mov dword [r14], ecx
mov eax, r10d
sub eax, r9d
add eax, ecx
mov dword [r14 + 8], eax
test sil, 2
je 0x14003f086
sub r9d, r10d
add r9d, dword [r14 + 8]
mov dword [r14], r9d
mov r9d, dword [rbp + 0xbc]
mov r10d, dword [rbp + 0xb4]
test sil, 4
je 0x14003f0ca
mov eax, dword [r14 + 0xc]
sub eax, dword [r14 + 4]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r9d
sub eax, r10d
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
add ecx, dword [r14 + 4]
mov dword [r14 + 4], ecx
mov eax, r9d
sub eax, r10d
add eax, ecx
mov dword [r14 + 0xc], eax
test sil, 8
je 0x14003f0de
mov eax, dword [r14 + 0xc]
sub eax, r9d
add eax, r10d
mov dword [r14 + 4], eax
lea rax, [rbp + 0x588]
mov qword [rbp + 0x580], rax
xor eax, eax
mov word [rbp + 0x588], ax
mov rbx, qword [rdi + 0x190]
mov edi, eax
nop
mov byte [rbp - 0x4c], 0
mov rax, qword [rbp + 0x18]
cmp edi, dword [rax]
jge 0x14003f149
movsxd rsi, edi
mov rcx, rsi
shl rcx, 4
add rcx, qword [rbp + 0x80]
mov rdx, rbx
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x14003f12e
inc edi
jmp 0x14003f100
imul rdx, rsi, 0x88
add rdx, qword [rbp + 0x48]
lea rcx, [rbp + 0x580]
call fcn.14000cab0
mov byte [rbp - 0x4c], 1
mov esi, dword [r14]
mov dword [rbp - 0x80], esi
mov r8d, dword [r14 + 4]
mov dword [rbp - 0x7c], r8d
xor r10d, r10d
mov edx, r10d
mov dword [rbp - 0x44], edx
mov edi, dword [r12 + 0x10]
add edi, dword [r12]
mov dword [rsp + 0x74], edi
mov dword [rbp + 8], r10d
mov r9d, r10d
mov dword [rbp - 0x68], r10d
mov ebx, r10d
mov qword [rbp + 0x88], rbx
mov byte [rbp - 0x48], dl
mov byte [rsp + 0x78], dl
xor r11b, r11b
mov byte [rsp + 0x79], r11b
mov byte [rsp + 0x70], dl
mov dword [rbp + 0x28], r10d
mov qword [rbp + 0x70], r10
mov qword [rbp + 0x78], r10
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x38], r10
mov qword [rbp + 0x60], r10
mov qword [rbp + 0x68], r10
mov r10, qword [rsp + 0x68]
mov qword [rbp - 0x78], r10
mov qword [rbp + 0x90], r10
mov byte [rbp - 0x4a], r11b
mov byte [rbp - 0x4b], r11b
mov byte [rbp - 0x6c], r11b
mov dword [rbp - 0x14], ebx
xor al, al
mov byte [rsp + 0x60], al
movzx ecx, word [r10]
test cx, cx
je 0x1400417ea
movzx r8d, byte [rsp + 0x70]
mov r9d, dword [r14 + 8]
cmp esi, r9d
jge 0x14004130e
cmp cx, 0xa
je 0x140041314
cmp byte [rbp - 0x48], 0
jne 0x140041321
movzx r11d, byte [rsp + 0x78]
test r11b, r11b
jne 0x14004102d
cmp cx, 0x3c
je 0x14003f229
cmp cx, 0x7b
jne 0x140040f9f
lea r9, [r10 + 2]
movzx eax, word [r9]
sub ax, 0x61
cmp ax, 0x19
ja 0x140040b24
movzx eax, word [r10 + 4]
cmp ax, 0x20
je 0x14003f25a
cmp ax, 0x3e
je 0x14003f25a
cmp ax, 0x7d
jne 0x140040b24
mov qword [rsp + 0x68], r9
movzx eax, word [r9]
add eax, 0xffffff9f
cmp eax, 0x18
ja case.0x14003f283.100
cdqe
lea r10, [0x140000000]
mov ecx, dword [r10 + rax*4 + 0x41904]
add rcx, r10
jmp rcx
add r9, 2
mov qword [rsp + 0x68], r9
movzx eax, word [r9]
test ax, ax
je 0x14003f2b9
cmp ax, 0x20
ja 0x14003f2b6
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r9, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x14003f297
mov edx, dword [rbp - 0x44]
mov rcx, qword [rbp + 0x18]
mov rsi, qword [rbp + 0x48]
cmp edx, dword [rcx]
jge 0x14003f36f
cmp byte [rsp + 0x60], 0
jne 0x14003f36f
movsxd rax, edx
imul rdi, rax, 0x88
add rdi, rsi
lea rbx, [rdi + 8]
mov rcx, qword [rdi]
cmp rcx, rbx
je 0x14003f2f7
call fcn.1400a95f0
mov r9, qword [rsp + 0x68]
mov qword [rdi], rbx
xor eax, eax
mov word [rbx], ax
movzx eax, word [r9]
test ax, ax
je 0x14003f36b
xor r14d, r14d
nop dword [rax + rax]
cmp ax, 0x3e
je 0x14003f367
cmp ax, 0x7d
je 0x14003f367
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov rbx, rax
mov r9, qword [rsp + 0x68]
cmp r9, rax
jae 0x14003f35e
movzx ecx, word [r9]
add r9, 2
mov qword [rsp + 0x68], r9
mov word [rbp + 0x58], cx
mov word [rbp + 0x5a], r14w
lea rdx, [rbp + 0x58]
mov rcx, rdi
call fcn.14000c8f0
mov r9, qword [rsp + 0x68]
cmp r9, rbx
jb 0x14003f332
movzx eax, word [r9]
test ax, ax
jne 0x14003f310
mov r14, qword [rbp - 0x20]
mov rcx, qword [rbp + 0x18]
mov edi, dword [rbp + 0x690]
cmp byte [rbp - 0x4c], 0
je 0x14003f3c2
movsxd rax, dword [rbp - 0x44]
cmp eax, dword [rcx]
jge 0x14003f3c2
imul rcx, rax, 0x88
mov r8, qword [rcx + rsi]
mov rax, qword [rbp + 0x580]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x14003f3b4
add rax, 2
test ecx, ecx
jne 0x14003f3a0
test edx, edx
jne 0x14003f3c2
mov rax, qword [rbp]
mov edi, dword [rax + 0x624]
mov esi, dword [rbp - 0x50]
inc esi
mov dword [rbp - 0x50], esi
mov dword [rbp - 8], esi
mov r8d, dword [rbp - 4]
cmp esi, r8d
jl 0x14003f400
lea ebx, [r8 + r8]
test ebx, ebx
mov eax, 0xb
cmove ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rbp - 0x10]
call fcn.1400a9604
test rax, rax
je 0x14003f455
mov dword [rbp - 4], ebx
mov qword [rbp - 0x10], rax
mov ecx, edi
movsxd rax, esi
mov rdx, qword [rbp - 0x10]
mov qword [rdx + rax*8 - 8], rcx
movzx edx, di
and edx, 0xffffff00
mov eax, edi
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, dil
shl eax, 0x10
or edx, eax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
mov rbx, qword [rbp + 0x20]
test r13d, r13d
jle 0x14003f463
lea eax, [r13 - 1]
test eax, eax
js 0x14003f45f
cmp eax, r13d
jge 0x14003f45f
cdqe
mov rsi, qword [rbp - 0x60]
mov rbx, qword [rsi + rax*8]
jmp 0x14003f467
dec esi
mov dword [rbp - 0x50], esi
mov dword [rbp - 8], esi
jmp 0x14003f40e
xor eax, eax
mov ebx, eax
mov rsi, qword [rbp - 0x60]
cmp byte [rbx + 0x95], 0
jne 0x14003f5c3
movzx eax, byte [rbx + 0x96]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], 1
movzx r9d, byte [rbx + 0x94]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 8]
mov rdi, qword [rbp]
mov rcx, rdi
call fcn.1400152a0
test rax, rax
jne 0x14003f4df
mov byte [rsp + 0x38], al
movzx eax, byte [rbx + 0x96]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], 1
movzx eax, byte [rbx + 0x94]
mov byte [rsp + 0x20], al
mov r9d, dword [rbx + 0x90]
mov r8, qword [rbx + 8]
mov edx, 0x7530
mov rcx, rdi
call fcn.140014ac0
mov rdx, rax
mov rcx, rdi
call fcn.140015700
mov rdi, rax
inc r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
mov ecx, dword [rbp - 0x54]
cmp r13d, ecx
jl 0x14003f52c
lea ebx, [rcx + rcx]
test ebx, ebx
mov eax, 0xb
cmove ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, rsi
call fcn.1400a9604
test rax, rax
je 0x14003f56b
mov dword [rbp - 0x54], ebx
mov rsi, rax
mov qword [rbp - 0x60], rax
movsxd rax, r13d
mov qword [rsi + rax*8 - 8], rdi
lea r12, [rdi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rdi]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov r10d, dword [rbp - 0x64]
lea ecx, [r10 - 1]
test ecx, ecx
js 0x14003f579
cmp ecx, r10d
jge 0x14003f579
movsxd rax, ecx
mov r11, qword [rbp - 0x30]
mov rdx, qword [r11 + rax*8]
xor ebx, ebx
jmp 0x14003f581
dec r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
jmp 0x14003f534
xor ebx, ebx
mov edx, ebx
mov r11, qword [rbp - 0x30]
mov r8d, dword [r12 + 0x10]
mov r9d, dword [r12]
lea eax, [r9 + r8]
add eax, edx
mov edi, dword [rsp + 0x74]
cmp edi, eax
jg 0x14003f5c7
test ecx, ecx
js 0x14003f5b4
cmp ecx, r10d
jge 0x14003f5b4
movsxd rax, ecx
mov rcx, qword [r11 + rax*8]
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
jmp 0x14003f5c7
mov rcx, rbx
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
jmp 0x14003f5c7
mov edi, dword [rsp + 0x74]
mov rbx, qword [rbp - 0x80]
mov qword [rbp + 0x88], rbx
mov byte [rsp + 0x79], 1
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
add r9, 2
mov qword [rsp + 0x68], r9
mov rdi, qword [rbp + 0x20]
test r13d, r13d
jle 0x14003f610
lea eax, [r13 - 1]
test eax, eax
js 0x14003f60c
cmp eax, r13d
jge 0x14003f60c
cdqe
mov rcx, qword [rbp - 0x60]
mov rdi, qword [rcx + rax*8]
jmp 0x14003f610
xor eax, eax
mov edi, eax
cmp byte [rdi + 0x94], 0
jne 0x14003f865
movzx eax, byte [rdi + 0x96]
mov byte [rsp + 0x28], al
movzx eax, byte [rdi + 0x95]
mov byte [rsp + 0x20], al
mov r9b, 1
mov r8d, dword [rdi + 0x90]
mov rdx, qword [rdi + 8]
mov rsi, qword [rbp]
mov rcx, rsi
call fcn.1400152a0
test rax, rax
jne 0x14003f689
mov byte [rsp + 0x38], al
movzx eax, byte [rdi + 0x96]
mov byte [rsp + 0x30], al
movzx eax, byte [rdi + 0x95]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], 1
mov r9d, dword [rdi + 0x90]
mov r8, qword [rdi + 8]
mov edx, 0x7530
mov rcx, rsi
call fcn.140014ac0
mov rdx, rax
mov rcx, rsi
call fcn.140015700
mov rsi, rax
inc r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
mov edx, dword [rbp - 0x54]
cmp r13d, edx
jl 0x14003f6e2
lea edi, [rdx + rdx]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x60]
call fcn.1400a9604
test rax, rax
jne 0x14003f6db
dec r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
jmp 0x14003f6ee
mov dword [rbp - 0x54], edi
mov qword [rbp - 0x60], rax
movsxd rax, r13d
mov rcx, qword [rbp - 0x60]
mov qword [rcx + rax*8 - 8], rsi
lea r12, [rsi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rsi]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov r15d, dword [rbp - 0x64]
lea ecx, [r15 - 1]
test ecx, ecx
js 0x14003f726
cmp ecx, r15d
jge 0x14003f726
movsxd rax, ecx
mov r10, qword [rbp - 0x30]
mov rdx, qword [r10 + rax*8]
xor r11d, r11d
jmp 0x14003f730
xor r11d, r11d
mov edx, r11d
mov r10, qword [rbp - 0x30]
mov r8d, dword [r12 + 0x10]
mov r9d, dword [r12]
lea eax, [r9 + r8]
add eax, edx
mov edi, dword [rsp + 0x74]
cmp edi, eax
jg 0x14003f5d7
test ecx, ecx
js 0x14003f76f
cmp ecx, r15d
jge 0x14003f76f
movsxd rax, ecx
mov rcx, qword [r10 + rax*8]
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
mov rcx, r11
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
add r9, 2
mov qword [rsp + 0x68], r9
movzx eax, word [r9]
test ax, ax
je 0x14003f7c5
movzx ecx, ax
nop dword [rax + rax]
movzx eax, cx
cmp cx, 0x20
ja 0x14003f7c5
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r9, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
movzx ecx, ax
test ax, ax
jne 0x14003f7a0
cmp ax, 0x23
jne 0x14003f7d4
add r9, 2
mov qword [rsp + 0x68], r9
mov r8d, InitCommonControls
lea rdx, [rsp + 0x68]
mov rcx, r9
call fcn.1400afca8
mov esi, eax
mov r13d, dword [rbp - 0x50]
inc r13d
mov dword [rbp - 0x50], r13d
mov dword [rbp - 8], r13d
mov r8d, dword [rbp - 4]
cmp r13d, r8d
jl 0x14003f82f
lea edi, [r8 + r8]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x10]
call fcn.1400a9604
test rax, rax
je 0x14003f8b7
mov dword [rbp - 4], edi
mov qword [rbp - 0x10], rax
movsxd rax, r13d
mov rdx, qword [rbp - 0x10]
mov qword [rdx + rax*8 - 8], rsi
movzx edx, si
and edx, 0xffffff00
mov eax, esi
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, sil
shl eax, 0x10
or edx, eax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
mov r9, qword [rsp + 0x68]
mov edi, dword [rsp + 0x74]
movzx ecx, word [r9]
test cx, cx
je 0x14003f897
cmp cx, 0x3e
je 0x14003f897
cmp cx, 0x7d
je 0x14003f897
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r9, rax
mov qword [rsp + 0x68], rax
movzx ecx, word [rax]
test cx, cx
jne 0x14003f872
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r13, rax
mov qword [rbp - 0x78], rax
mov esi, dword [rbp - 0x80]
mov qword [rsp + 0x68], rax
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
dec r13d
mov dword [rbp - 0x50], r13d
mov dword [rbp - 8], r13d
jmp 0x14003f83b
lea rdi, [r9 + 2]
mov qword [rsp + 0x68], rdi
movzx eax, word [rdi]
test ax, ax
je 0x14003f8f7
cmp ax, 0x20
ja 0x14003f8f7
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x14003f8d8
mov r8d, 0xa
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.1400afca8
mov edx, eax
mov rax, qword [rsp + 0x68]
cmp rdi, rax
je 0x14003f999
mov rcx, qword [rbp]
call fcn.1400155e0
mov rsi, rax
inc r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
mov edx, dword [rbp - 0x54]
cmp r13d, edx
jl 0x14003f963
lea edi, [rdx + rdx]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x60]
call fcn.1400a9604
test rax, rax
je 0x14003f98b
mov dword [rbp - 0x54], edi
mov qword [rbp - 0x60], rax
movsxd rax, r13d
mov rcx, qword [rbp - 0x60]
mov qword [rcx + rax*8 - 8], rsi
lea r12, [rsi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rsi]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
jmp 0x14003fccb
dec r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
jmp 0x14003f96f
lea rcx, [rbp + 0x468]
mov qword [rbp + 0x460], rcx
xor esi, esi
mov word [rbp + 0x468], si
lea r15d, [rsi + 0xa]
lea rcx, [rbp + 0x348]
mov qword [rbp + 0x340], rcx
mov word [rbp + 0x348], si
movzx ecx, word [rax]
test cx, cx
je 0x14003fa73
movzx edx, cx
nop dword [rax + rax]
movzx ecx, dx
cmp dx, 0x3e
je 0x14003fa49
cmp dx, 0x7d
je 0x14003fa49
cmp dx, 0x20
je 0x14003fa49
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov rax, qword [rsp + 0x68]
cmp rax, rdi
jae 0x14003fa3e
nop dword [rax + rax]
movzx ecx, word [rax]
add rax, 2
mov qword [rsp + 0x68], rax
mov word [rbp + 0x5c], cx
mov word [rbp + 0x5e], si
lea rdx, [rbp + 0x5c]
lea rcx, [rbp + 0x460]
call fcn.14000c8f0
mov rax, qword [rsp + 0x68]
cmp rax, rdi
jb 0x14003fa10
movzx ecx, word [rax]
movzx edx, cx
test cx, cx
jne 0x14003f9e0
test cx, cx
je 0x14003fa73
movzx edx, cx
movzx ecx, dx
cmp dx, 0x20
ja 0x14003fa73
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [rsp + 0x68], rax
movzx ecx, word [rax]
movzx edx, cx
test cx, cx
jne 0x14003fa51
movzx ecx, cx
call fcn.1400b0370
test eax, eax
je 0x14003fa97
mov r8d, 0xa
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x68]
call fcn.1400afca8
mov r15d, eax
mov rax, qword [rsp + 0x68]
movzx ecx, word [rax]
test cx, cx
je 0x14003fb36
movzx edx, cx
nop dword [rax + rax]
movzx ecx, dx
cmp dx, 0x20
ja 0x14003fad4
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [rsp + 0x68], rax
movzx ecx, word [rax]
movzx edx, cx
test cx, cx
jne 0x14003fab0
jmp 0x14003fb36
cmp cx, 0x3e
je 0x14003fb36
cmp cx, 0x7d
je 0x14003fb36
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov rax, qword [rsp + 0x68]
cmp rax, rdi
jae 0x14003fb2e
nop word [rax + rax]
movzx ecx, word [rax]
add rax, 2
mov qword [rsp + 0x68], rax
mov word [rbp + 0x40], cx
mov word [rbp + 0x42], si
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x340]
call fcn.14000c8f0
mov rax, qword [rsp + 0x68]
cmp rax, rdi
jb 0x14003fb00
movzx ecx, word [rax]
test cx, cx
jne 0x14003fad4
mov rcx, qword [rbp + 0x340]
call fcn.1400a984c
lea rdx, [0x1401167f0]
mov rcx, qword [rbp + 0x340]
call fcn.1400a47a4
mov r14, rax
mov rcx, qword [rbp + 0x340]
test rax, rax
jne 0x14003fb6a
lea r14d, [rax - 1]
jmp 0x14003fb70
sub r14, rcx
sar r14, 1
shr r14d, 0x1f
xor r14b, 1
lea rdx, str.underline
call fcn.1400a47a4
mov rsi, rax
mov rcx, qword [rbp + 0x340]
test rax, rax
jne 0x14003fb98
lea esi, [rax - 1]
jmp 0x14003fb9e
sub rsi, rcx
sar rsi, 1
shr esi, 0x1f
xor sil, 1
lea rdx, str.italic
call fcn.1400a47a4
mov rdi, rax
test rax, rax
jne 0x14003fbbe
lea edi, [rax - 1]
jmp 0x14003fbc8
sub rdi, qword [rbp + 0x340]
sar rdi, 1
shr edi, 0x1f
xor dil, 1
mov byte [rsp + 0x28], dil
mov byte [rsp + 0x20], sil
movzx r9d, r14b
mov r8d, r15d
mov rdx, qword [rbp + 0x460]
mov r12, qword [rbp]
mov rcx, r12
call fcn.1400152a0
test rax, rax
jne 0x14003fc22
mov byte [rsp + 0x38], al
mov byte [rsp + 0x30], dil
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x20], r14b
mov r9d, r15d
mov r8, qword [rbp + 0x460]
mov edx, 0x7530
mov rcx, r12
call fcn.140014ac0
mov rdx, rax
mov rcx, r12
call fcn.140015700
mov rsi, rax
inc r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
mov edx, dword [rbp - 0x54]
cmp r13d, edx
jl 0x14003fc71
lea edi, [rdx + rdx]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x60]
call fcn.1400a9604
test rax, rax
je 0x14003fcec
mov dword [rbp - 0x54], edi
mov qword [rbp - 0x60], rax
movsxd rax, r13d
mov rcx, qword [rbp - 0x60]
mov qword [rcx + rax*8 - 8], rsi
lea r12, [rsi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rsi]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.GDI32.dll_SelectObject]
nop
lea rax, [rbp + 0x348]
mov rcx, qword [rbp + 0x340]
cmp rcx, rax
je 0x14003fcaf
call fcn.1400a95f0
nop
lea rax, [rbp + 0x468]
mov rcx, qword [rbp + 0x460]
cmp rcx, rax
je 0x14003fcc7
call fcn.1400a95f0
mov r14, qword [rbp - 0x20]
mov r15d, dword [rbp - 0x64]
lea edx, [r15 - 1]
test edx, edx
js 0x14003fcfa
cmp edx, r15d
jge 0x14003fcfa
movsxd rax, edx
mov r10, qword [rbp - 0x30]
mov r8, qword [r10 + rax*8]
xor r11d, r11d
jmp 0x14003fd04
dec r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
jmp 0x14003fc7d
xor r11d, r11d
mov r8d, r11d
mov r10, qword [rbp - 0x30]
mov r9d, dword [r12 + 0x10]
add r9d, dword [r12]
lea eax, [r8 + r9]
mov edi, dword [rsp + 0x74]
cmp edi, eax
jg 0x14003f5d7
test edx, edx
js 0x14003fd3f
cmp edx, r15d
jge 0x14003fd3f
movsxd rax, edx
mov rcx, qword [r10 + rax*8]
lea edi, [rcx + r9]
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
mov rcx, r11
lea edi, [rcx + r9]
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
lea r13, [r9 - 2]
mov qword [rbp - 0x78], r13
lea rax, [r9 + 2]
mov qword [rsp + 0x68], rax
lea rcx, [rbp + 0x3d8]
mov qword [rbp + 0x3d0], rcx
xor edx, edx
mov word [rbp + 0x3d8], dx
lea rsi, [0x140112cfc]
test rax, rax
cmovne rsi, rax
mov rdi, 0xffffffffffffffff
inc rdi
cmp word [rsi + rdi*2], dx
jne 0x14003fd91
cmp edi, 0x3f
jl 0x14003fdc0
mov qword [rbp + 0x3d0], rdx
lea eax, [rdi + 1]
movsxd rdx, eax
add rdx, rdx
xor ecx, ecx
call fcn.1400a9604
mov rcx, rax
mov qword [rbp + 0x3d0], rax
movsxd rdi, edi
mov r8, rdi
mov rdx, rsi
call fcn.1400a960c
mov rax, qword [rbp + 0x3d0]
xor esi, esi
mov word [rax + rdi*2], si
mov r9, qword [rsp + 0x68]
movzx eax, word [r9]
test ax, ax
je 0x14003fe0f
nop dword [rax]
cmp ax, 0x20
ja 0x14003fe0f
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r9, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x14003fdf0
lea rax, [rbp + 0x4f8]
mov qword [rbp + 0x4f0], rax
mov word [rbp + 0x4f8], si
movzx ecx, word [r9]
test cx, cx
je 0x14003fe9b
movzx eax, cx
movzx ecx, ax
cmp ax, 0x3e
je 0x14003fe9b
cmp ax, 0x7d
je 0x14003fe9b
cmp ax, 0x20
je 0x14003fe9b
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov r9, qword [rsp + 0x68]
cmp r9, rax
jae 0x14003fe8f
nop dword [rax + rax]
movzx ecx, word [r9]
add r9, 2
mov qword [rsp + 0x68], r9
mov word [rbp + 0x44], cx
mov word [rbp + 0x46], si
lea rdx, [rbp + 0x44]
lea rcx, [rbp + 0x4f0]
call fcn.14000c8f0
mov r9, qword [rsp + 0x68]
cmp r9, rdi
jb 0x14003fe60
movzx ecx, word [r9]
movzx eax, cx
test cx, cx
jne 0x14003fe30
mov rax, qword [rbp + 0x4f0]
cmp word [rax], 0
jne 0x14004004d
mov r13, rsi
mov qword [rbp - 0x78], rsi
mov rdi, qword [rbp + 0x20]
mov ecx, dword [rsp + 0x7c]
test ecx, ecx
jle 0x14003fed9
lea eax, [rcx - 1]
test eax, eax
js 0x14003fed6
cmp eax, ecx
jge 0x14003fed6
cdqe
mov rcx, qword [rbp - 0x60]
mov rdi, qword [rcx + rax*8]
jmp 0x14003fed9
mov rdi, rsi
cmp byte [rdi + 0x96], r13b
jne 0x1400407c7
mov byte [rsp + 0x28], 1
movzx eax, byte [rdi + 0x95]
mov byte [rsp + 0x20], al
movzx r9d, byte [rdi + 0x94]
mov r8d, dword [rdi + 0x90]
mov rdx, qword [rdi + 8]
mov rsi, qword [rbp]
mov rcx, rsi
call fcn.1400152a0
test rax, rax
jne 0x14003ff52
mov byte [rsp + 0x38], r13b
mov byte [rsp + 0x30], 1
movzx eax, byte [rdi + 0x95]
mov byte [rsp + 0x28], al
movzx eax, byte [rdi + 0x94]
mov byte [rsp + 0x20], al
mov r9d, dword [rdi + 0x90]
mov r8, qword [rdi + 8]
mov edx, 0x7530
mov rcx, rsi
call fcn.140014ac0
mov rdx, rax
mov rcx, rsi
call fcn.140015700
mov rsi, rax
mov r12d, dword [rsp + 0x7c]
inc r12d
mov dword [rsp + 0x7c], r12d
mov dword [rbp - 0x58], r12d
mov edx, dword [rbp - 0x54]
cmp r12d, edx
jl 0x14003ffa2
lea edi, [rdx + rdx]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x60]
call fcn.1400a9604
test rax, rax
je 0x14003ffe5
mov dword [rbp - 0x54], edi
mov qword [rbp - 0x60], rax
movsxd rax, r12d
mov rcx, qword [rbp - 0x60]
mov qword [rcx + rax*8 - 8], rsi
lea r12, [rsi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rsi]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov r10d, dword [rbp - 0x64]
lea ecx, [r10 - 1]
test ecx, ecx
js 0x14003fff3
cmp ecx, r10d
jge 0x14003fff3
movsxd rax, ecx
mov r11, qword [rbp - 0x30]
mov rdx, qword [r11 + rax*8]
xor esi, esi
jmp 0x14003fffb
dec r12d
mov dword [rsp + 0x7c], r12d
mov dword [rbp - 0x58], r12d
jmp 0x14003ffae
xor esi, esi
mov edx, esi
mov r11, qword [rbp - 0x30]
mov r8d, dword [r12 + 0x10]
mov r9d, dword [r12]
lea eax, [r9 + r8]
add eax, edx
mov edi, dword [rsp + 0x74]
cmp edi, eax
jg 0x140040043
test ecx, ecx
js 0x140040036
cmp ecx, r10d
jge 0x140040036
movsxd rax, ecx
mov rcx, qword [r11 + rax*8]
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp 0x1400407cb
mov rcx, rsi
lea edi, [r9 + r8]
add edi, ecx
mov dword [rsp + 0x74], edi
mov r9, qword [rsp + 0x68]
jmp 0x1400407cb
test cx, cx
je 0x140040071
cmp cx, 0x20
ja 0x140040071
mov rcx, r9
call qword [sym.imp.USER32.dll_CharNextW]
mov r9, rax
mov qword [rsp + 0x68], rax
movzx ecx, word [rax]
test cx, cx
jne 0x140040052
mov r8d, 0xa
lea rdx, [rsp + 0x68]
mov rcx, r9
call fcn.1400afca8
mov r12d, eax
test eax, eax
mov eax, 1
cmovle r12d, eax
mov dword [rbp - 0x38], r12d
mov rax, qword [rsp + 0x68]
movzx ecx, word [rax]
test cx, cx
je 0x1400400bf
cmp cx, 0x20
ja 0x1400400bf
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [rsp + 0x68], rax
movzx ecx, word [rax]
test cx, cx
jne 0x1400400a3
mov r8d, 0xa
lea rdx, [rsp + 0x68]
mov rcx, rax
call fcn.1400afca8
mov r15d, eax
mov dword [rbp - 0x18], eax
test eax, eax
js 0x1400400e1
cmp eax, r12d
jl 0x1400400ed
xor r14d, r14d
mov r15d, r14d
mov dword [rbp - 0x18], r14d
jmp 0x1400400f0
xor r14d, r14d
lea rdx, str.file
mov rcx, qword [rbp + 0x3d0]
call fcn.1400a47a4
test rax, rax
jne 0x140040147
lea rdx, str.res
mov rcx, qword [rbp + 0x3d0]
call fcn.1400a47a4
test rax, rax
jne 0x140040147
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], al
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp + 0x4f0]
mov rcx, qword [rbp]
call fcn.1400158f0
mov r14, rax
jmp 0x14004065d
lea rax, [rbp + 0x188]
mov qword [rbp + 0x180], rax
mov word [rbp + 0x188], r14w
lea rax, [rbp + 0xf8]
mov qword [rbp + 0xf0], rax
mov word [rbp + 0xf8], r14w
mov rdi, qword [rbp + 0x3d0]
lea rax, [rbp + 0x2b8]
mov qword [rbp + 0x2b0], rax
mov word [rbp + 0x2b8], r14w
lea rax, [rbp + 0x228]
mov qword [rbp + 0x220], rax
mov word [rbp + 0x228], r14w
cmp word [rdi], 0
je 0x1400405d3
lea rax, [rbp + 0x2b8]
mov rcx, qword [rbp + 0x2b0]
cmp rcx, rax
je 0x1400401c8
call fcn.1400a95f0
lea rax, [rbp + 0x2b8]
mov qword [rbp + 0x2b0], rax
mov word [rbp + 0x2b8], r14w
lea rax, [rbp + 0x228]
mov rcx, qword [rbp + 0x220]
cmp rcx, rax
je 0x1400401f6
call fcn.1400a95f0
lea rax, [rbp + 0x228]
mov qword [rbp + 0x220], rax
mov word [rbp + 0x228], r14w
movzx eax, word [rdi]
test ax, ax
je 0x1400402d0
movzx ecx, ax
nop dword [rax + rax]
movzx eax, cx
cmp cx, 0x20
ja 0x140040240
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
movzx eax, word [rax]
movzx ecx, ax
test ax, ax
jne 0x140040220
test ax, ax
je 0x1400402d0
movzx ecx, ax
nop dword [rax]
movzx eax, cx
cmp cx, 0x3d
je 0x1400402a0
cmp cx, 0x20
jbe 0x1400402a0
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rsi, rax
cmp rdi, rax
jae 0x140040295
movzx ecx, word [rdi]
mov word [rbp + 0x54], cx
mov word [rbp + 0x56], r14w
lea rdx, [rbp + 0x54]
lea rcx, [rbp + 0x2b0]
call fcn.14000c8f0
add rdi, 2
cmp rdi, rsi
jb 0x140040270
movzx eax, word [rdi]
movzx ecx, ax
test ax, ax
jne 0x140040250
test ax, ax
je 0x1400402d0
movzx ecx, ax
nop dword [rax + rax]
movzx eax, cx
cmp cx, 0x20
ja 0x1400402d0
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
movzx eax, word [rax]
movzx ecx, ax
test ax, ax
jne 0x1400402b0
add rdi, 2
cmp ax, 0x3d
jne 0x1400405cb
movzx eax, word [rdi]
test ax, ax
je 0x140040310
movzx ecx, ax
nop dword [rax]
movzx eax, cx
cmp cx, 0x20
ja 0x140040310
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
movzx eax, word [rax]
movzx ecx, ax
test ax, ax
jne 0x1400402f0
add rdi, 2
cmp ax, 0x27
jne 0x1400405cb
movzx eax, word [rdi]
test ax, ax
je 0x140040380
movzx ecx, ax
nop dword [rax]
movzx eax, cx
cmp cx, 0x27
je 0x140040380
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rsi, rax
cmp rdi, rax
jae 0x140040375
nop word [rax + rax]
movzx ecx, word [rdi]
mov word [rbp + 0x50], cx
mov word [rbp + 0x52], r14w
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x220]
call fcn.14000c8f0
add rdi, 2
cmp rdi, rsi
jb 0x140040350
movzx eax, word [rdi]
movzx ecx, ax
test ax, ax
jne 0x140040330
cmp ax, 0x27
jne 0x1400405cb
mov rax, qword [rbp + 0x220]
cmp word [rax], 0
je 0x1400405b3
mov rcx, r14
mov rdx, qword [rbp + 0x2b0]
lea r8, [0x140112f20]
nop dword [rax]
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x1400403c7
cmp rcx, 5
jne 0x1400403b0
jmp 0x1400403f9
mov rcx, r14
mov rdx, qword [rbp + 0x2b0]
lea r8, [0x140112f30]
nop dword [rax + rax]
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x1400404c0
cmp rcx, 4
jne 0x1400403e0
mov r14, qword [rbp + 0x220]
mov rsi, 0xffffffffffffffff
nop word [rax + rax]
inc rsi
cmp word [r14 + rsi*2], 0
jne 0x140040410
mov rcx, qword [rbp + 0xf0]
cmp esi, 0x3f
jge 0x140040441
lea rax, [rbp + 0xf8]
cmp rcx, rax
je 0x14004049f
call fcn.1400a95f0
lea rax, [rbp + 0xf8]
jmp 0x140040498
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140040450
cmp esi, eax
lea rax, [rbp + 0xf8]
jg 0x140040470
cmp qword [rbp + 0xf0], rax
jne 0x14004049f
jmp 0x140040479
cmp qword [rbp + 0xf0], rax
jne 0x140040483
xor r12d, r12d
mov qword [rbp + 0xf0], r12
lea eax, [rsi + 1]
movsxd rdx, eax
add rdx, rdx
mov rcx, qword [rbp + 0xf0]
call fcn.1400a9604
mov qword [rbp + 0xf0], rax
movsxd rsi, esi
mov r8, rsi
mov rdx, r14
mov rcx, qword [rbp + 0xf0]
call fcn.1400a960c
mov rax, qword [rbp + 0xf0]
jmp 0x1400405ab
mov rcx, r14
mov rdx, qword [rbp + 0x2b0]
lea r8, str.restype
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x1400405b3
cmp rcx, 8
jne 0x1400404d1
mov r14, qword [rbp + 0x220]
mov rsi, 0xffffffffffffffff
nop dword [rax + rax]
inc rsi
cmp word [r14 + rsi*2], 0
jne 0x140040500
mov rcx, qword [rbp + 0x180]
cmp esi, 0x3f
jge 0x140040531
lea rax, [rbp + 0x188]
cmp rcx, rax
je 0x14004058f
call fcn.1400a95f0
lea rax, [rbp + 0x188]
jmp 0x140040588
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140040540
cmp esi, eax
lea rax, [rbp + 0x188]
jg 0x140040560
cmp qword [rbp + 0x180], rax
jne 0x14004058f
jmp 0x140040569
cmp qword [rbp + 0x180], rax
jne 0x140040573
xor r15d, r15d
mov qword [rbp + 0x180], r15
lea eax, [rsi + 1]
movsxd rdx, eax
add rdx, rdx
mov rcx, qword [rbp + 0x180]
call fcn.1400a9604
mov qword [rbp + 0x180], rax
movsxd rsi, esi
mov r8, rsi
mov rdx, r14
mov rcx, qword [rbp + 0x180]
call fcn.1400a960c
mov rax, qword [rbp + 0x180]
xor r14d, r14d
mov word [rax + rsi*2], r14w
movzx eax, word [rdi + 2]
add rdi, 4
cmp ax, 0x20
jne 0x1400405cb
cmp word [rdi], 0
jne 0x1400401b0
mov r15d, dword [rbp - 0x18]
mov r12d, dword [rbp - 0x38]
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rbp + 0x180]
mov rdx, qword [rbp + 0xf0]
mov rcx, qword [rbp]
call fcn.1400158f0
mov r14, rax
lea rax, [rbp + 0x228]
mov rcx, qword [rbp + 0x220]
cmp rcx, rax
je 0x140040613
call fcn.1400a95f0
nop
lea rax, [rbp + 0x2b8]
mov rcx, qword [rbp + 0x2b0]
cmp rcx, rax
je 0x14004062c
call fcn.1400a95f0
nop
lea rax, [rbp + 0xf8]
mov rcx, qword [rbp + 0xf0]
cmp rcx, rax
je 0x140040645
call fcn.1400a95f0
nop
lea rax, [rbp + 0x188]
mov rcx, qword [rbp + 0x180]
cmp rcx, rax
je 0x14004065d
call fcn.1400a95f0
test r14, r14
je 0x1400407b1
mov r8d, dword [r14 + 0x18]
mov esi, dword [r14 + 0x1c]
cmp r12d, 1
jbe 0x14004067e
mov eax, r8d
cdq
idiv r12d
mov r8d, eax
mov eax, dword [rbp - 0x80]
lea edi, [r8 + rax]
mov rcx, qword [rbp - 0x20]
cmp edi, dword [rcx + 8]
jle 0x1400406a7
cmp eax, dword [rcx]
jle 0x1400406a7
test byte [rbp + 0x6b8], 0x20
jne 0x1400406a7
mov byte [rbp - 0x48], 1
mov r14, rcx
jmp 0x1400407be
xor r10d, r10d
mov r13d, r10d
mov qword [rbp - 0x78], r10
cmp byte [rbp - 0x70], r10b
je 0x14004078d
cmp byte [rsp + 0x60], r10b
je 0x14004078d
mov dword [rbp + 0xb0], eax
mov r9d, dword [rbp - 0x14]
mov eax, r9d
sub eax, esi
mov edx, dword [rbp - 0x7c]
lea ecx, [rax + rdx]
mov dword [rbp + 0xb4], ecx
mov dword [rbp + 0xb8], edi
lea ecx, [r9 + rdx]
mov dword [rbp + 0xbc], ecx
cmp esi, r9d
jge 0x14004070b
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rbp + 0xbc], ecx
sub ecx, esi
mov dword [rbp + 0xb4], ecx
mov dword [rbp + 0xc4], r10d
mov dword [rbp + 0xcc], esi
mov eax, r15d
imul eax, r8d
mov dword [rbp + 0xc0], eax
lea eax, [r15 + 1]
imul eax, r8d
mov dword [rbp + 0xc8], eax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x210], xmm0
mov byte [rsp + 0x50], r10b
mov byte [rsp + 0x48], r10b
mov byte [rsp + 0x40], r10b
mov byte [rsp + 0x38], 0xff
movzx eax, byte [r14 + 0x20]
mov byte [rsp + 0x30], al
lea rax, [rbp + 0x210]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xb0]
lea r8, [rbp + 0xb0]
mov rdx, qword [r14]
mov rcx, qword [rbp + 0x10]
call fcn.14003c310
mov eax, dword [rsp + 0x74]
cmp esi, eax
cmovg eax, esi
mov dword [rsp + 0x74], eax
mov dword [rbp - 0x80], edi
mov eax, dword [rbp - 0x7c]
add eax, esi
mov dword [rbp + 8], eax
cmp dword [rbp - 0x68], edi
cmovg edi, dword [rbp - 0x68]
mov dword [rbp - 0x68], edi
jmp 0x1400407ba
xor eax, eax
mov r13d, eax
mov qword [rbp - 0x78], rax
mov r14, qword [rbp - 0x20]
mov r9, qword [rsp + 0x68]
mov r12, qword [rbp - 0x40]
mov edi, dword [rsp + 0x74]
lea rax, [rbp + 0x4f8]
mov rcx, qword [rbp + 0x4f0]
cmp rcx, rax
je 0x1400407e8
call fcn.1400a95f0
mov r9, qword [rsp + 0x68]
lea rax, [rbp + 0x3d8]
mov rcx, qword [rbp + 0x3d0]
cmp rcx, rax
je 0x140040805
call fcn.1400a95f0
mov r9, qword [rsp + 0x68]
test r13, r13
je case.0x14003f283.100
mov esi, dword [rbp - 0x80]
mov qword [rsp + 0x68], r13
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
add r9, 2
mov qword [rsp + 0x68], r9
test byte [rbp + 0x6b8], 0x20
jne case.0x14003f283.100
mov byte [rbp - 0x48], 1
jmp case.0x14003f283.100
lea rcx, [r9 + 2]
mov qword [rsp + 0x68], rcx
mov eax, dword [rbp - 0x48]
movzx eax, al
cmp esi, dword [r14]
mov edx, 1
cmovg eax, edx
mov dword [rbp - 0x48], eax
movzx eax, word [rcx]
test ax, ax
je 0x14004087e
cmp ax, 0x20
ja 0x14004087e
call qword [sym.imp.USER32.dll_CharNextW]
mov rcx, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x140040862
mov r8d, 0xa
lea rdx, [rsp + 0x68]
call fcn.1400afca8
movsxd rsi, eax
mov r15d, dword [rbp - 0x64]
inc r15d
mov dword [rbp - 0x64], r15d
mov dword [rbp - 0x28], r15d
mov r8d, dword [rbp - 0x24]
cmp r15d, r8d
jl 0x1400408d7
lea edi, [r8 + r8]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x30]
call fcn.1400a9604
test rax, rax
je 0x140040906
mov dword [rbp - 0x24], edi
mov qword [rbp - 0x30], rax
mov edi, dword [rsp + 0x74]
movsxd rax, r15d
mov rdx, qword [rbp - 0x30]
mov qword [rdx + rax*8 - 8], rsi
mov ecx, dword [r12 + 0x10]
add ecx, dword [r12]
add ecx, esi
cmp edi, ecx
jg 0x14003f5d7
mov edi, ecx
mov dword [rsp + 0x74], ecx
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
dec r15d
mov dword [rbp - 0x64], r15d
mov dword [rbp - 0x28], r15d
mov edi, dword [rsp + 0x74]
jmp 0x1400408e3
add r9, 2
mov qword [rsp + 0x68], r9
mov byte [rsp + 0x78], 1
jmp case.0x14003f283.100
add r9, 2
mov qword [rsp + 0x68], r9
cmp r8b, 0
sete byte [rsp + 0x70]
cmp byte [rbp - 0x70], 0
je case.0x14003f283.100
cmp byte [rsp + 0x60], 0
je case.0x14003f283.100
mov rcx, r15
test r8b, r8b
jne 0x14004096e
mov edx, 2
call qword [sym.imp.GDI32.dll_SetBkMode]
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
mov edx, 1
call qword [sym.imp.GDI32.dll_SetBkMode]
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
add r9, 2
mov qword [rsp + 0x68], r9
mov rdi, qword [rbp + 0x20]
test r13d, r13d
jle 0x1400409b2
lea eax, [r13 - 1]
test eax, eax
js 0x1400409ae
cmp eax, r13d
jge 0x1400409ae
cdqe
mov rcx, qword [rbp - 0x60]
mov rdi, qword [rcx + rax*8]
jmp 0x1400409b2
xor eax, eax
mov edi, eax
cmp byte [rdi + 0x95], 0
jne 0x14003f865
movzx eax, byte [rdi + 0x96]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], 1
movzx r9d, byte [rdi + 0x94]
mov r8d, dword [rdi + 0x90]
mov rdx, qword [rdi + 8]
mov rsi, qword [rbp]
mov rcx, rsi
call fcn.1400152a0
test rax, rax
jne 0x140040a2a
mov byte [rsp + 0x38], al
movzx eax, byte [rdi + 0x96]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], 1
movzx eax, byte [rdi + 0x94]
mov byte [rsp + 0x20], al
mov r9d, dword [rdi + 0x90]
mov r8, qword [rdi + 8]
mov edx, 0x7530
mov rcx, rsi
call fcn.140014ac0
mov rdx, rax
mov rcx, rsi
call fcn.140015700
mov rsi, rax
inc r13d
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
mov edx, dword [rbp - 0x54]
cmp r13d, edx
jl 0x14003f6e2
lea edi, [rdx + rdx]
test edi, edi
mov eax, 0xb
cmove edi, eax
movsxd rdx, edi
shl rdx, 3
mov rcx, qword [rbp - 0x60]
call fcn.1400a9604
test rax, rax
je 0x14003f6cd
jmp 0x14003f6db
lea rcx, [r9 + 2]
mov qword [rsp + 0x68], rcx
movzx eax, word [rcx]
test ax, ax
je 0x140040aac
nop dword [rax]
cmp ax, 0x20
ja 0x140040aac
call qword [sym.imp.USER32.dll_CharNextW]
mov rcx, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x140040a90
mov r8d, 0xa
lea rdx, [rsp + 0x68]
call fcn.1400afca8
add esi, eax
mov dword [rbp - 0x80], esi
mov eax, esi
cmp dword [rbp - 0x68], esi
cmovg eax, dword [rbp - 0x68]
mov dword [rbp - 0x68], eax
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
lea rcx, [r9 + 2]
mov qword [rsp + 0x68], rcx
movzx eax, word [rcx]
test ax, ax
je 0x140040b04
cmp ax, 0x20
ja 0x140040b04
call qword [sym.imp.USER32.dll_CharNextW]
mov rcx, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x140040ae8
mov r8d, 0xa
lea rdx, [rsp + 0x68]
call fcn.1400afca8
mov edi, eax
mov dword [rsp + 0x74], eax
mov r9, qword [rsp + 0x68]
jmp case.0x14003f283.100
cmp cx, 0x3c
je 0x140040b34
cmp cx, 0x7b
jne 0x140040f9f
cmp word [r10 + 2], 0x2f
jne 0x140040ed2
lea rdx, [r10 + 4]
mov qword [rsp + 0x68], rdx
movzx eax, word [rdx]
add eax, 0xffffff9f
cmp eax, 0x14
ja case.0x140040b75.102
cdqe
lea r9, [0x140000000]
movzx eax, byte [r9 + rax + 0x41980]
mov ecx, dword [r9 + rax*4 + 0x41968]
add rcx, r9
jmp rcx
lea rax, [rdx + 2]
mov qword [rsp + 0x68], rax
mov ecx, dword [rbp - 0x50]
lea eax, [rcx - 1]
test eax, eax
js 0x140040b95
cmp eax, ecx
cmovl ecx, eax
mov dword [rbp - 0x50], ecx
mov dword [rbp - 8], ecx
mov r8d, dword [rbp + 0x690]
test ecx, ecx
jle 0x140040bbc
lea eax, [rcx - 1]
test eax, eax
js 0x140040bb7
cmp eax, ecx
jge 0x140040bb7
cdqe
mov rcx, qword [rbp - 0x10]
mov r8, qword [rcx + rax*8]
jmp 0x140040bbc
xor eax, eax
mov r8d, eax
movzx edx, r8w
and edx, 0xffffff00
mov eax, r8d
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, r8b
shl eax, 0x10
or edx, eax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x140040e7c
add rdx, 2
mov qword [rsp + 0x68], rdx
movzx eax, byte [rbp - 0x48]
cmp esi, dword [r14]
mov ecx, 1
cmovg eax, ecx
mov byte [rbp - 0x48], al
mov r11d, dword [rbp - 0x64]
lea eax, [r11 - 1]
test eax, eax
js 0x140040c1e
cmp eax, r11d
cmovl r11d, eax
mov dword [rbp - 0x64], r11d
mov dword [rbp - 0x28], r11d
lea r8d, [r11 - 1]
test r8d, r8d
js 0x140040c3c
cmp r8d, r11d
jge 0x140040c3c
movsxd rax, r8d
mov r15, qword [rbp - 0x30]
mov r9, qword [r15 + rax*8]
xor r13d, r13d
jmp 0x140040c46
xor r13d, r13d
mov r9d, r13d
mov r15, qword [rbp - 0x30]
mov r10d, dword [r12 + 0x10]
add r10d, dword [r12]
lea eax, [r10 + r9]
cmp edi, eax
jg case.0x140040b75.102
test r8d, r8d
js 0x140040c79
cmp r8d, r11d
jge 0x140040c79
movsxd rax, r8d
mov rcx, qword [r15 + rax*8]
lea edi, [r10 + rcx]
mov dword [rsp + 0x74], edi
jmp case.0x140040b75.102
mov rcx, r13
lea edi, [r10 + rcx]
mov dword [rsp + 0x74], edi
jmp case.0x140040b75.102
add rdx, 2
mov qword [rsp + 0x68], rdx
cmp r8b, 0
sete byte [rsp + 0x70]
cmp byte [rbp - 0x70], 0
je case.0x140040b75.102
cmp byte [rsp + 0x60], 0
je case.0x140040b75.102
mov rcx, r15
test r8b, r8b
jne 0x140040cc8
mov edx, 2
call qword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x140040e7c
mov edx, 1
call qword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x140040e7c
movsxd rdi, dword [rbp - 0x44]
mov rax, qword [rbp + 0x18]
cmp edi, dword [rax]
jge 0x140040d20
cmp byte [rsp + 0x60], 0
jne 0x140040d1b
mov rcx, rdi
mov eax, dword [r12 + 0x10]
add eax, dword [r12]
add eax, dword [rbp - 0x7c]
shl rcx, 4
add rcx, qword [rbp + 0x80]
mov dword [rsp + 0x20], eax
mov r9d, esi
mov r8d, dword [rbp + 0x8c]
mov edx, ebx
call qword [sym.imp.USER32.dll_SetRect]
inc edi
mov dword [rbp - 0x44], edi
mov ecx, dword [rbp - 0x50]
lea eax, [rcx - 1]
test eax, eax
js 0x140040d35
cmp eax, ecx
cmovl ecx, eax
mov dword [rbp - 0x50], ecx
mov dword [rbp - 8], ecx
mov r8d, dword [rbp + 0x690]
test ecx, ecx
jle 0x140040d5c
lea eax, [rcx - 1]
test eax, eax
js 0x140040d57
cmp eax, ecx
jge 0x140040d57
cdqe
mov rcx, qword [rbp - 0x10]
mov r8, qword [rcx + rax*8]
jmp 0x140040d5c
xor eax, eax
mov r8d, eax
movzx edx, r8w
and edx, 0xffffff00
mov eax, r8d
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, r8b
shl eax, 0x10
or edx, eax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
xor al, al
mov byte [rsp + 0x79], al
mov rdx, qword [rsp + 0x68]
add rdx, 2
mov qword [rsp + 0x68], rdx
lea eax, [r13 - 1]
test eax, eax
js 0x140040daf
cmp eax, r13d
cmovl r13d, eax
mov dword [rsp + 0x7c], r13d
mov dword [rbp - 0x58], r13d
lea eax, [r13 - 1]
test eax, eax
js 0x140040dcb
cmp eax, r13d
jge 0x140040dcb
cdqe
mov rcx, qword [rbp - 0x60]
mov rdi, qword [rcx + rax*8]
test rdi, rdi
jne 0x140040dcf
mov rdi, qword [rbp + 0x20]
cmp byte [r12 + 0x34], 0
je 0x140040e08
cmp byte [rdi + 0x96], 0
jne 0x140040e08
lea r9, [rbp + 0xe0]
mov edx, 0x20
mov r8d, edx
mov rcx, r15
call qword [sym.imp.GDI32.dll_GetCharABCWidthsW]
mov eax, dword [rbp + 0xe8]
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov dword [rbp - 0x80], esi
lea r12, [rdi + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rdi]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov r11d, dword [rbp - 0x64]
lea edx, [r11 - 1]
test edx, edx
js 0x140040e40
cmp edx, r11d
jge 0x140040e40
movsxd rax, edx
mov r10, qword [rbp - 0x30]
mov r8, qword [r10 + rax*8]
xor r15d, r15d
jmp 0x140040e4a
xor r15d, r15d
mov r8d, r15d
mov r10, qword [rbp - 0x30]
mov r9d, dword [r12 + 0x10]
add r9d, dword [r12]
lea eax, [r9 + r8]
mov edi, dword [rsp + 0x74]
cmp edi, eax
jg 0x140040e7c
test edx, edx
js 0x140040e71
cmp edx, r11d
jge 0x140040e71
movsxd rax, edx
mov rcx, qword [r10 + rax*8]
jmp 0x140040e74
mov rcx, r15
lea edi, [r9 + rcx]
mov dword [rsp + 0x74], edi
mov rdx, qword [rsp + 0x68]
movzx eax, word [rdx]
test ax, ax
je 0x140040eb5
nop dword [rax]
cmp ax, 0x3e
je 0x140040eb5
cmp ax, 0x7d
je 0x140040eb5
mov rcx, rdx
call qword [sym.imp.USER32.dll_CharNextW]
mov rdx, rax
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
test ax, ax
jne 0x140040e90
mov rcx, rdx
call qword [sym.imp.USER32.dll_CharNextW]
mov r13, rax
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x68], rax
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
cmp cx, 0x3c
jne 0x140040ef1
cmp word [r10 + 4], 0x3e
jne 0x14004102d
lea rdx, [r10 + 2]
movzx eax, word [rdx]
sub ax, 0x7b
jmp 0x140040f12
cmp cx, 0x7b
jne 0x140040f9f
cmp word [r10 + 4], 0x7d
jne 0x14004102d
lea rdx, [r10 + 2]
movzx eax, word [rdx]
sub ax, 0x3c
mov ecx, 0xfffd
test cx, ax
jne 0x14004102d
xor eax, eax
mov qword [rbp - 0x78], rax
lea r9, [rbp - 0x78]
mov r13d, 1
mov r8d, r13d
mov rcx, r15
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [rbp - 0x70], 0
je 0x140040f73
cmp byte [rsp + 0x60], 0
je 0x140040f73
mov r9, qword [rsp + 0x68]
add r9, 2
mov r8d, dword [rbp - 0x14]
sub r8d, dword [r12 + 0x10]
sub r8d, dword [r12]
add r8d, dword [rbp - 0x7c]
mov dword [rsp + 0x20], r13d
mov edx, esi
mov rcx, r15
call qword [sym.imp.GDI32.dll_TextOutW]
add esi, dword [rbp - 0x78]
mov dword [rbp - 0x80], esi
mov eax, esi
cmp dword [rbp - 0x68], esi
cmovg eax, dword [rbp - 0x68]
mov dword [rbp - 0x68], eax
mov r13, qword [rsp + 0x68]
add r13, 6
mov qword [rbp - 0x78], r13
mov qword [rsp + 0x68], r13
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
cmp cx, 0x20
jne 0x14004102d
xor eax, eax
mov qword [rbp - 0x78], rax
lea r9, [rbp - 0x78]
mov r13d, 1
mov r8d, r13d
lea rdx, [0x1401167e8]
mov rcx, r15
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [rbp - 0x70], 0
je 0x140041001
cmp byte [rsp + 0x60], 0
je 0x140041001
mov r8d, dword [rbp - 0x14]
sub r8d, dword [r12 + 0x10]
sub r8d, dword [r12]
add r8d, dword [rbp - 0x7c]
mov dword [rsp + 0x20], r13d
lea r9, [0x1401167e8]
mov edx, esi
mov rcx, r15
call qword [sym.imp.GDI32.dll_TextOutW]
add esi, dword [rbp - 0x78]
mov dword [rbp - 0x80], esi
mov eax, esi
cmp dword [rbp - 0x68], esi
cmovg eax, dword [rbp - 0x68]
mov dword [rbp - 0x68], eax
mov r13, qword [rsp + 0x68]
add r13, 2
mov qword [rbp - 0x78], r13
mov qword [rsp + 0x68], r13
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
mov r15d, esi
mov dword [rbp - 0x38], esi
xor eax, eax
mov esi, eax
mov r13d, eax
mov dword [rbp - 0x18], eax
mov rdi, r10
mov qword [rbp - 0x78], rax
test r11b, r11b
jne 0x140041050
cmp word [r10], 0x3c
je 0x14004105a
movzx eax, word [r10]
cmp ax, 0x7b
jne 0x140041066
add rdi, 2
mov esi, 1
movzx eax, word [rdi]
mov r14d, esi
test ax, ax
je 0x1400410c8
nop
mov r15d, r14d
mov r12d, esi
cmp ax, 0xa
je 0x1400410c0
test r11b, r11b
je 0x140041121
cmp ax, 0x3c
je 0x140041095
cmp ax, 0x7b
jne 0x14004112d
cmp word [rdi + 2], 0x2f
jne 0x14004112d
cmp word [rdi + 4], 0x72
jne 0x14004112d
movzx eax, word [rdi + 6]
cmp ax, 0x3e
je 0x1400410bb
cmp ax, 0x7d
jne 0x14004112d
mov byte [rsp + 0x78], 0
mov r12, qword [rbp - 0x40]
mov r15d, dword [rbp - 0x38]
mov r13d, dword [rbp + 0x6b8]
mov esi, dword [rbp - 0x80]
lea r9, [rbp - 0x78]
mov r8d, r14d
mov rdx, r10
mov rdi, qword [rbp + 0x10]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [rbp - 0x70], 0
je 0x1400412d7
cmp byte [rsp + 0x60], 0
je 0x1400412d7
mov eax, r13d
and al, 0x21
cmp al, 1
jne 0x14004125f
mov rcx, qword [rbp - 0x20]
mov eax, dword [rcx + 8]
sub eax, dword [rbp - 0x78]
sub eax, dword [rcx]
cdq
sub eax, edx
sar eax, 1
jmp 0x140041274
cmp ax, 0x3c
je 0x1400410c0
cmp ax, 0x7b
je 0x1400410c0
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
inc esi
sub rax, rdi
sar rax, 1
add r14d, eax
mov ecx, esi
mov rax, qword [rbp - 0x40]
imul ecx, dword [rax + 0x18]
mov dword [rbp - 0x78], ecx
mov edx, dword [rbp - 0x80]
lea eax, [rcx + rdx]
mov r8, qword [rbp - 0x20]
cmp eax, dword [r8 + 8]
jl 0x14004117a
lea r9, [rbp - 0x78]
mov r8d, r14d
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov ecx, dword [rbp - 0x78]
mov edx, dword [rbp - 0x80]
lea eax, [rcx + rdx]
mov rcx, qword [rbp - 0x20]
cmp eax, dword [rcx + 8]
jg 0x1400411d4
movzx ecx, word [rdi]
lea eax, [rcx - 0x61]
cmp ax, 0x19
jbe 0x1400411ac
lea eax, [rcx - 0x41]
cmp ax, 0x19
jbe 0x1400411ac
mov r13d, esi
mov dword [rbp - 0x18], r14d
cmp cx, 0x20
jne 0x1400411ac
mov dword [rbp - 0x18], r14d
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
movzx eax, word [rax]
mov r10, qword [rsp + 0x68]
test ax, ax
je 0x1400410c0
movzx r11d, byte [rsp + 0x78]
jmp 0x140041070
cmp edx, dword [rcx]
je 0x1400411de
mov esi, r12d
mov r14d, r15d
test byte [rbp + 0x6b8], 0x10
je 0x1400411f3
test r13d, r13d
jle 0x1400411f3
mov esi, r13d
mov r14d, dword [rbp - 0x18]
mov r13d, dword [rbp + 0x6b8]
bt r13d, 0xf
jae 0x14004123a
test esi, esi
jle 0x14004123a
dec esi
mov rdx, rdi
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.USER32.dll_CharPrevW]
test esi, esi
jle 0x140041227
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.USER32.dll_CharPrevW]
sub rdi, rax
sar rdi, 1
sub r14d, edi
mov r8, qword [rbp - 0x20]
mov esi, dword [r8 + 8]
jmp 0x14004123d
mov esi, dword [rbp - 0x80]
mov byte [rbp - 0x48], 1
mov eax, esi
cmp dword [rbp - 0x68], esi
cmovg eax, dword [rbp - 0x68]
mov dword [rbp - 0x68], eax
mov r10, qword [rsp + 0x68]
mov r15d, dword [rbp - 0x38]
mov r12, qword [rbp - 0x40]
jmp 0x1400410d2
mov eax, r13d
and al, 0x22
cmp al, 2
jne 0x140041277
mov rcx, qword [rbp - 0x20]
mov eax, dword [rcx + 8]
sub eax, dword [rbp - 0x78]
sub eax, dword [rcx]
add r15d, eax
mov r8d, dword [rbp - 0x14]
sub r8d, dword [r12 + 0x10]
sub r8d, dword [r12]
mov r13d, dword [rbp - 0x7c]
add r8d, r13d
mov dword [rsp + 0x20], r14d
mov r9, qword [rsp + 0x68]
mov edx, r15d
mov rcx, rdi
call qword [sym.imp.GDI32.dll_TextOutW]
mov rax, qword [rbp - 0x20]
cmp esi, dword [rax + 8]
jl 0x1400412d7
test dword [rbp + 0x6b8], 0x8000
je 0x1400412d7
mov edx, dword [rbp - 0x78]
add edx, r15d
mov dword [rsp + 0x20], 3
lea r9, [0x140116848]
mov r8d, r13d
mov rcx, rdi
call qword [sym.imp.GDI32.dll_TextOutW]
add esi, dword [rbp - 0x78]
mov dword [rbp - 0x80], esi
mov eax, esi
cmp dword [rbp - 0x68], esi
cmovg eax, dword [rbp - 0x68]
mov dword [rbp - 0x68], eax
movsxd rcx, r14d
mov rax, qword [rsp + 0x68]
lea r13, [rax + rcx*2]
mov qword [rbp - 0x78], r13
mov qword [rsp + 0x68], r13
mov r14, qword [rbp - 0x20]
mov edi, dword [rsp + 0x74]
mov edx, dword [rbp - 0x70]
jmp 0x1400414a7
cmp cx, 0xa
jne 0x140041321
add r10, 2
mov qword [rbp - 0x78], r10
mov qword [rsp + 0x68], r10
mov byte [rbp - 0x48], 0
test al, al
jne 0x140041465
test r11b, r11b
je 0x140041397
mov rax, qword [rbp + 0x18]
cmp edx, dword [rax]
jge 0x140041397
cmp esi, r9d
cmovl r9d, esi
movsxd rcx, edx
shl rcx, 4
add rcx, qword [rbp + 0x80]
mov esi, dword [rbp - 0x7c]
lea eax, [rdi + rsi]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbp + 0x8c]
mov edx, ebx
call qword [sym.imp.USER32.dll_SetRect]
mov eax, dword [rbp - 0x44]
inc eax
mov dword [rbp - 0x44], eax
cdqe
imul rcx, rax, 0x88
add rcx, qword [rbp + 0x48]
lea rdx, [rcx - 0x88]
call fcn.14000cab0
mov r13, qword [rsp + 0x68]
mov qword [rbp - 0x78], r13
mov edx, dword [rbp - 0x44]
jmp 0x14004139e
mov esi, dword [rbp - 0x7c]
mov r13, qword [rbp - 0x78]
movsxd rcx, dword [rbp + 0x28]
mov r9, rcx
movsxd rdx, edx
cmp rcx, rdx
jge 0x1400413e0
lea r8d, [rdi + rsi]
mov rax, rcx
shl rax, 4
mov rcx, qword [rbp + 0x80]
add rcx, 0xc
add rcx, rax
sub rdx, r9
nop dword [rax]
mov dword [rcx], r8d
lea rcx, [rcx + 0x10]
sub rdx, 1
jne 0x1400413d0
mov ecx, dword [rbp + 0x28]
mov edx, dword [rbp - 0x70]
test dl, dl
je 0x1400413f2
movzx eax, byte [rbp - 0x4b]
mov byte [rsp + 0x79], al
mov dword [rbp - 0x44], ecx
movzx eax, byte [rsp + 0x60]
test byte [rbp + 0x6b8], 0x20
je 0x140041410
test dl, dl
je 0x1400417df
test al, al
jne 0x1400417df
test dl, dl
je 0x14004141d
test al, al
sete al
mov byte [rsp + 0x60], al
mov esi, dword [r14]
mov dword [rbp - 0x80], esi
mov r8d, dword [rbp - 0x7c]
test al, al
jne 0x140041432
add r8d, edi
mov dword [rbp - 0x7c], r8d
cmp r8d, dword [r14 + 0xc]
jle 0x140041440
test dl, dl
jne 0x1400417e3
mov rbx, qword [rbp - 0x80]
mov qword [rbp + 0x88], rbx
mov ecx, dword [rbp - 0x64]
lea eax, [rcx - 1]
test eax, eax
js 0x14004148a
cmp eax, ecx
jge 0x14004148a
cdqe
mov rcx, qword [rbp - 0x30]
mov rcx, qword [rcx + rax*8]
jmp 0x14004148e
test r11b, r11b
je 0x140041477
mov rcx, qword [rbp + 0x18]
cmp edx, dword [rcx]
jge 0x140041477
inc edx
mov dword [rbp - 0x44], edx
mov byte [rbp - 0x4b], r11b
mov dword [rbp + 0x28], edx
mov r13, qword [rbp - 0x78]
mov edx, dword [rbp - 0x70]
jmp 0x1400413f7
xor eax, eax
mov ecx, eax
mov edi, dword [r12 + 0x10]
add edi, dword [r12]
add edi, ecx
mov dword [rsp + 0x74], edi
cmp esi, dword [r14 + 8]
jge 0x1400417e3
cmp esi, dword [r14 + 8]
jge 0x1400414bd
movzx eax, word [r13]
cmp ax, 0xa
je 0x1400414bd
test ax, ax
jne 0x1400414c4
mov al, 1
mov dword [rbp - 0x48], eax
jmp 0x1400414c7
mov eax, dword [rbp - 0x48]
test dl, dl
je 0x1400417b7
test al, al
je 0x1400417b7
cmp byte [rsp + 0x60], 0
jne 0x1400416a7
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x1400414f3
mov rcx, rax
call fcn.1400a95f0
movsxd r15, dword [rbp + 0x78]
mov rdi, r15
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov r12, rax
mov qword [rbp - 0x60], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov dword [rbp - 0x54], r15d
mov r13d, r15d
mov dword [rsp + 0x7c], r15d
mov dword [rbp - 0x58], r15d
mov r8, rdi
mov rdx, qword [rbp + 0x70]
mov rcx, r12
call fcn.1400a4a90
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x14004154a
mov rcx, rax
call fcn.1400a95f0
movsxd rdi, dword [rbp + 0x38]
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov r15, rax
mov qword [rbp - 0x10], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov eax, dword [rbp + 0x38]
mov dword [rbp - 4], eax
mov dword [rbp - 0x50], eax
mov dword [rbp - 8], eax
mov r8, rdi
mov rdx, qword [rbp + 0x30]
mov rcx, r15
call fcn.1400a4a90
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x14004159a
mov rcx, rax
call fcn.1400a95f0
movsxd rdi, dword [rbp + 0x68]
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov r15, rax
mov qword [rbp - 0x30], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov eax, dword [rbp + 0x68]
mov dword [rbp - 0x24], eax
mov dword [rbp - 0x64], eax
mov dword [rbp - 0x28], eax
mov r8, rdi
mov rdx, qword [rbp + 0x60]
mov rcx, r15
call fcn.1400a4a90
mov edi, dword [rsp + 0x74]
mov dword [rbp - 0x14], edi
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x68], rax
movzx eax, byte [rbp - 0x4a]
mov byte [rsp + 0x78], al
movzx eax, byte [rbp - 0x6c]
mov byte [rsp + 0x70], al
mov r8d, dword [rbp + 0x690]
mov ecx, dword [rbp + 0x38]
test ecx, ecx
jle 0x140041626
lea eax, [rcx - 1]
test eax, eax
js 0x140041621
cmp eax, ecx
jge 0x140041621
cdqe
mov rcx, qword [rbp - 0x10]
mov r8, qword [rcx + rax*8]
jmp 0x140041626
xor eax, eax
mov r8d, eax
movzx edx, r8w
and edx, 0xffffff00
mov eax, r8d
shr eax, 0x10
movzx ecx, al
or edx, ecx
movzx eax, r8b
shl eax, 0x10
or edx, eax
mov r15, qword [rbp + 0x10]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [rbp + 0x78]
lea eax, [rcx - 1]
test eax, eax
js 0x14004166a
cmp eax, ecx
jge 0x14004166a
cdqe
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x14004166e
mov rdx, qword [rbp + 0x20]
lea r12, [rdx + 0x98]
mov qword [rbp - 0x40], r12
mov rdx, qword [rdx]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
cmp byte [rbp - 0x6c], 0
je 0x140041699
mov edx, 2
mov rcx, r15
call qword [sym.imp.GDI32.dll_SetBkMode]
mov r10, qword [rsp + 0x68]
mov qword [rbp - 0x78], r10
jmp 0x1400417c4
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x1400416b8
mov rcx, rax
call fcn.1400a95f0
movsxd r13, dword [rsp + 0x7c]
mov rdi, r13
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov r15, rax
mov qword [rbp + 0x70], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov dword [rbp + 0x7c], r13d
mov dword [rbp + 0x78], r13d
mov r8, rdi
mov rdx, qword [rbp - 0x60]
mov rcx, r15
call fcn.1400a4a90
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x140041708
mov rcx, rax
call fcn.1400a95f0
movsxd r15, dword [rbp - 0x50]
mov rdi, r15
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov qword [rbp + 0x30], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov dword [rbp + 0x3c], r15d
mov dword [rbp + 0x38], r15d
mov r8, rdi
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x30]
call fcn.1400a4a90
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x140041755
mov rcx, rax
call fcn.1400a95f0
movsxd r15, dword [rbp - 0x64]
mov rdi, r15
shl rdi, 3
mov rcx, rdi
call fcn.1400a95e8
mov qword [rbp + 0x60], rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400a5140
mov dword [rbp + 0x6c], r15d
mov dword [rbp + 0x68], r15d
mov r8, rdi
mov rdx, qword [rbp - 0x30]
mov rcx, qword [rbp + 0x60]
call fcn.1400a4a90
mov r10, qword [rsp + 0x68]
mov qword [rbp - 0x78], r10
mov qword [rbp + 0x90], r10
movzx eax, byte [rsp + 0x70]
mov byte [rbp - 0x6c], al
movzx eax, byte [rsp + 0x78]
mov byte [rbp - 0x4a], al
mov edi, dword [rsp + 0x74]
jmp 0x1400417c0
mov r13d, dword [rsp + 0x7c]
mov r10, qword [rbp - 0x78]
mov r15, qword [rbp + 0x10]
movzx ecx, word [r10]
test cx, cx
movzx r11d, byte [rsp + 0x79]
movzx eax, byte [rsp + 0x60]
mov edx, dword [rbp - 0x44]
jne 0x14003f1e3
mov r8d, dword [rbp - 0x7c]
mov edx, dword [rbp - 0x44]
mov r9d, dword [rbp - 0x68]
mov rax, qword [rbp + 0x18]
mov dword [rax], edx
test dword [rbp + 0x6b8], 0x400
je 0x14004181b
lea eax, [rdi + r8]
mov ecx, dword [rbp + 8]
cmp ecx, eax
cmovle ecx, eax
mov dword [r14 + 0xc], ecx
mov eax, dword [r14 + 8]
cmp eax, r9d
cmovge eax, r9d
mov dword [r14 + 8], eax
mov rbx, qword [rbp + 0x98]
cmp byte [rbp - 0x70], 0
je 0x140041834
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectClipRgn]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rdx, qword [rbp + 0xa0]
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
nop
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x14004186d
mov rcx, rax
call fcn.1400a95f0
nop
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x14004187f
mov rcx, rax
call fcn.1400a95f0
nop
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x140041891
mov rcx, rax
call fcn.1400a95f0
nop
lea rax, [rbp + 0x588]
mov rcx, qword [rbp + 0x580]
cmp rcx, rax
je 0x1400418aa
call fcn.1400a95f0
nop
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x1400418bc
mov rcx, rax
call fcn.1400a95f0
nop
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x1400418ce
mov rcx, rax
call fcn.1400a95f0
nop
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x1400418df
mov rcx, rax
call fcn.1400a95f0
mov rcx, qword [rbp + 0x610]
xor rcx, rsp
call fcn.1400a23f0
add rsp, 0x728
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret