Function at 0x180028814
Capabilities:
Check for software breakpoints
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2218]
mov eax, 0x22f0
call fcn.18003f580
sub rsp, rax
mov rax, qword [0x180067a78]
xor rax, rsp
mov qword [rbp + 0x21e0], rax
mov r15, qword [0x180067668]
mov r9d, 0xc8879933
movzx eax, byte [0x1800675bf]
mov r13d, 0x79
movzx r12d, byte [0x180067583]
mov r14d, 0xfc26
mov byte [rsp + 0x50], 0x7a
mov qword [rbp - 0x70], r15
mov word [rsp + 0x58], ax
movsx eax, word [0x180067670]
mov dword [rsp + 0x64], eax
movsxd rax, dword [str.hZn0]
mov qword [rsp + 0x78], rax
mov eax, dword [0x180067608]
mov qword [rbp - 0x58], rax
mov eax, dword [0x18006759c]
movsx rsi, byte [0x1800675ff]
mov qword [rbp - 0x68], rax
movabs rax, 0xf4742f58790d8
mov qword [rbp - 0x80], rax
mov rax, qword [0x1800675d0]
movzx ebx, byte [0x18006756c]
mov byte [rsp + 0x53], al
lea eax, [r13 + 0x59]
mov word [rsp + 0x54], ax
movzx eax, word [0x180067674]
mov byte [rsp + 0x52], 0x76
mov byte [rsp + 0x51], 0xd1
mov dword [rsp + 0x68], eax
mov rax, qword [0x1800675e0]
mov byte [rsp + 0x6c], 0x2f
mov byte [rsp + 0x6c], 0xf2
mov qword [rbp - 0x18], rax
mov rax, qword [0x180067620]
mov dword [rbp - 0x30], eax
mov al, byte [0x1800675f9]
mov byte [rsp + 0x6c], al
mov eax, dword [0x180067630]
mov eax, dword [0x1800675cc]
mov dword [rbp - 0x30], eax
movsx eax, byte [0x1800675f8]
mov dword [rbp - 0x30], eax
mov rax, qword [0x180067640]
mov qword [rbp + 0x38], rax
mov eax, dword [0x1800675f0]
mov dword [rbp - 0x30], eax
movzx eax, word [0x180067584]
mov dword [rbp + 0x44], ecx
mov ecx, dword [0x1800675f4]
mov byte [rsp + 0x6c], al
mov qword [rbp + 0x58], r8
mov byte [rbp + 0xc], dl
mov dword [rbp - 0x38], r9d
mov qword [rbp - 0x40], r15
mov dword [rbp - 0x28], 0x18922112
mov dword [rbp - 0x60], 0x21
call fcn.180030f20
mov qword [rsp + 0x78], rax
lea r9d, [r13 - 0x67]
mov rax, qword [rsp + 0x78]
xor edi, edi
test rax, rax
jg 0x1800289a8
mov al, byte [0x180067618]
shl al, 6
mov byte [rsp + 0x53], al
jmp 0x1800289f4
movsx eax, r12w
mov r8d, 0x18adf
not eax
sub r8d, ebx
movsxd rcx, eax
mov rdx, rdi
mov rax, qword [rbp - 0x70]
sub rcx, rax
movzx eax, word [rsp + 0x58]
cmp r8d, esi
cmove rdx, rcx
xor ax, word [0x180067658]
movzx ecx, dx
movzx edx, ax
mov eax, r9d
imul edx, ecx
sub al, byte [0x1800675e8]
mov byte [0x1800675ff], al
mov word [rsp + 0x58], dx
mov eax, dword [0x180bd5d30]
mov edx, 0xf4
movsx r9, byte [rbp - 0x18]
mov r8d, 0x53
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x60]
add eax, 0x5d1
mov qword [rsp + 0x20], rbx
mov dword [rbp - 0x30], eax
movsx rcx, byte [0x1800675f9]
call fcn.180031504
mov word [0x180067628], ax
test ax, ax
je 0x180028a49
movsxd rcx, dword [0x1800675cc]
call qword [sym.imp.USER32.dll_IsWindow]
mov byte [rsp + 0x50], al
mov eax, dword [rsp + 0x60]
mov rdx, rdi
add eax, 0x4da
mov dword [rbp + 0x1c], eax
mov al, byte [0x1800675f9]
movzx ecx, byte [rsp + 0x51]
test al, al
mov rax, qword [rbp - 0x58]
sete dl
xor rcx, qword [0x180067668]
not rcx
xor rdx, rsi
add rcx, rdx
mov edx, 4
add ax, cx
mov word [0x180067670], ax
mov eax, dword [rsp + 0x60]
add eax, 0x6ce
mov qword [0x180067658], rdx
mov dword [rbp - 0x30], eax
mov rcx, qword [rbp - 0x80]
mov rax, qword [rbp - 0x80]
sub rcx, rsi
add rax, rcx
mov qword [rbp - 0x80], rax
mov rax, qword [0x180067658]
test rax, rax
je 0x180028b4e
sub rax, 1
je 0x180028b32
sub rax, 1
je 0x180028b28
sub rax, 1
je 0x180028b07
mov r8d, dword [rbp - 0x60]
cmp rax, 1
jne 0x180028b70
mov eax, dword [rsp + 0x64]
movzx ecx, word [0x18006763c]
add eax, 0x49
add ecx, eax
mov eax, dword [0x180067664]
add eax, 0x1648
mov dword [rsp + 0x64], ecx
mov dword [0x180067630], eax
jmp 0x180028b70
mov rcx, qword [0x180067640]
mov rax, qword [0x180067640]
sub rcx, rax
mov rax, qword [rbp - 0x58]
sub rcx, rax
mov qword [0x180067640], rcx
jmp 0x180028b6c
movzx r8d, byte [0x1800675fa]
jmp 0x180028b70
mov eax, dword [rsp + 0x64]
add r15, rax
mov eax, dword [0x180067630]
sub eax, 0xf2
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x68], rax
jmp 0x180028b6c
mov eax, dword [0x180067630]
mov r14d, 0x1f84c
mov rcx, qword [rbp - 0x70]
sub r14d, eax
mov rax, qword [rbp - 0x70]
add rcx, rax
mov qword [rbp - 0x70], rcx
mov r8d, dword [rbp - 0x60]
mov eax, dword [0x180bd5d30]
mov ecx, 0xfa
mov dword [rsp + 0x60], eax
mov word [0x180067584], dx
mov rax, qword [0x180067678]
sub ecx, eax
mov eax, 1
add r14d, ecx
movzx ecx, word [0x180067584]
test ecx, ecx
je 0x180028c1b
sub ecx, eax
je 0x180028c04
sub ecx, eax
je 0x180028bed
sub ecx, eax
je 0x180028bc4
cmp ecx, eax
jne 0x180028c37
add sil, dl
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x50], sil
jmp 0x180028c37
movzx eax, word [rsp + 0x54]
test r14d, r14d
mov edx, edi
mov ecx, edi
cmove edx, r8d
xor edx, ecx
xor dl, byte [0x1800675bf]
mov byte [rsp + 0x50], dl
mov qword [0x180067640], 0x41
jmp 0x180028c37
mov rax, qword [rbp - 0x80]
test esi, esi
mov rcx, rdi
sete cl
imul rcx, rax
mov qword [rsp + 0x78], rcx
jmp 0x180028c37
movzx eax, byte [0x1800675fb]
mov ecx, dword [0x180067634]
xor ecx, eax
mov dword [0x180067634], ecx
jmp 0x180028c37
mov rax, qword [0x180067620]
test rax, rax
mov rax, qword [rbp - 0x68]
jne 0x180028c31
movsx rax, byte [rsp + 0x53]
mov byte [0x18006756f], al
mov eax, dword [rsp + 0x60]
add eax, 0x437
mov dword [rbp - 0x30], eax
mov rax, qword [rsp + 0x78]
not rax
test rax, rax
je 0x180028c72
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x180028c6c
mov eax, dword [0x180067660]
sub eax, 0xd8
mov dword [0x1800675f4], eax
jmp 0x180028c7e
mov al, byte [rsp + 0x51]
jmp 0x180028c7e
movzx eax, word [0x180bd5d30]
mov word [rsp + 0x58], ax
mov eax, dword [rsp + 0x60]
lea rcx, [rbp + 0x2060]
movups xmm0, xmmword [str.Bad_key_data_forma]
add eax, 0x67d
mov dword [rbp - 0x60], eax
movzx eax, word [0x18004ba08]
mov word [rbp + 0x2070], ax
mov al, byte [0x18004ba0a]
mov byte [rbp + 0x2072], al
movups xmmword [rbp + 0x2060], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rcx, eax
mov esi, edi
mov eax, dword [rsp + 0x60]
add eax, 0x43c
mov qword [0x1800675e8], rcx
mov dword [rbp - 8], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x60]
add eax, 0x79a
mov byte [0x18006762a], 0x27
mov dword [rbp - 0x30], eax
mov eax, dword [rsp + 0x60]
movzx ecx, word [0x180067628]
add eax, 0x43e
mov dword [rbp - 0x34], eax
movsx eax, byte [rbp - 0x18]
cmp ecx, eax
mov ecx, dword [0x180067630]
movzx eax, byte [0x1800675fb]
sete dl
add cl, al
not cl
add cl, dl
mov byte [0x180067586], cl
movzx eax, word [rsp + 0x58]
neg al
mov byte [0x18006762a], al
mov eax, dword [rsp + 0x60]
movzx ecx, byte [0x18006762a]
add eax, 0x675
mov dword [rbp - 0x20], eax
movzx eax, r14b
imul ecx, eax
mov byte [rsp + 0x51], cl
mov ecx, edi
mov al, byte [rsp + 0x51]
test al, al
mov eax, dword [str.hZn0]
sete cl
add eax, ecx
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
sete sil
mov eax, dword [rsp + 0x60]
add eax, 0x5e1
mov dword [rbp + 0x10], eax
mov eax, dword [0x180067650]
test eax, eax
je 0x180028db3
movzx ecx, byte [rsp + 0x51]
movzx eax, byte [rsp + 0x51]
sub ecx, eax
mov eax, dword [0x18006759c]
sub cl, al
movsx eax, byte [0x1800675be]
mov word [0x180067638], ax
mov byte [rsp + 0x51], cl
jmp 0x180028ddb
mov edx, dword [0x1800675f0]
mov eax, dword [0x1800675f0]
movsx esi, byte [0x18006762a]
sub rdx, rax
mov rax, qword [rbp - 0x68]
add esi, 0xc601
sub edx, eax
mov dword [0x1800675f0], edx
mov eax, dword [rsp + 0x60]
add eax, 0x5bb
cmp word [0x1800675fc], di
mov dword [rsp + 0x5c], eax
je 0x180028e76
movzx ecx, word [rsp + 0x54]
mov edx, edi
mov eax, dword [rsp + 0x64]
cmp ecx, eax
movzx eax, word [rsp + 0x54]
mov ecx, edi
setae dl
mov cl, 1
cmp edx, ecx
jbe 0x180028e20
mov al, byte [0x18006756e]
add al, 0x5d
mov byte [rsp + 0x51], al
jmp 0x180028e8f
mov eax, dword [0x18006759c]
test eax, eax
je 0x180028e8f
movzx eax, byte [0x180067587]
mov r8d, edi
mov rdx, qword [0x1800675d0]
not eax
cdqe
imul rdx, rax
mov eax, dword [0x180067660]
imul eax, eax, 0xf74d
cmp rax, rdx
movsx eax, byte [0x1800675fe]
sete r8b
sub r8d, eax
mov eax, dword [0x180067634]
lea ecx, [r8 + rsi]
sub ecx, eax
not ecx
mov dword [0x180067608], ecx
jmp 0x180028e8f
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x180028e8f
mov rax, qword [0x180067600]
test rax, rax
je 0x180028e8f
mov al, byte [rsp + 0x51]
mov eax, dword [rsp + 0x60]
mov edx, 0xa5
add eax, 0x3d2
xor r9d, r9d
xor ecx, ecx
mov dword [rbp - 0x30], eax
lea r8d, [rdx + 0x32]
call fcn.180031380
mov dword [0x1800675cc], eax
test eax, eax
je 0x180028ec1
mov byte [0x1800675be], 0xc3
jmp 0x180028f16
test r12w, r12w
je 0x180028ed5
mov al, byte [0x180067586]
test al, al
sete byte [rbp - 0x18]
jmp 0x180028f16
mov al, byte [rsp + 0x52]
mov r8d, 1
movzx ecx, word [0x180067584]
mov rax, qword [0x180067610]
not ecx
movsxd rdx, ecx
mov ecx, edi
cmp rdx, rax
seta cl
cmp r8d, ecx
jne 0x180028f16
cmp byte [0x1800675be], dil
movsx eax, word [rsp + 0x68]
cmovne eax, dword [0x1800675f0]
mov dword [rsp + 0x64], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
movzx r8d, word [0x180067584]
mov rax, qword [0x1800675d0]
xor r8d, esi
mov rcx, qword [0x1800675e0]
not r8d
sub r8d, eax
not rcx
mov eax, dword [rsp + 0x64]
xor rcx, qword [0x1800675e8]
sub ax, cx
mov word [rsp + 0x58], ax
mov eax, dword [rsp + 0x60]
add eax, 0x474
mov dword [rsp + 0x68], eax
mov cl, byte [rsp + 0x52]
mov al, byte [rsp + 0x50]
cmp al, cl
je 0x180028fc9
cmp byte [0x1800675fb], dil
mov edx, edi
movzx eax, byte [0x180067583]
mov ecx, edi
sete dl
cmp eax, edx
seta cl
cmp esi, ecx
jg 0x180028f9c
mov rax, qword [rbp - 0x80]
mov r13d, esi
add al, bl
xor bl, al
sar r13d, 1
jmp 0x180028fcd
mov al, byte [0x180067587]
test al, al
je 0x180028fcd
mov rcx, qword [0x180067610]
sub rcx, r12
mov qword [0x180067610], rcx
movzx eax, byte [rsp + 0x52]
add rax, 0x5b
mov qword [0x1800675e8], rax
jmp 0x180028fcd
mov rax, qword [rbp - 0x80]
mov eax, dword [rsp + 0x60]
add eax, 0x423
mov dword [rbp - 0x30], eax
mov eax, dword [rsp + 0x60]
add eax, 0x435
mov dword [rbp - 0x30], eax
mov eax, dword [0x180067664]
add eax, 0xffffff4a
movsxd rcx, eax
mov qword [rbp - 0x58], rcx
movsxd rax, dword [0x18006761c]
cmp rax, qword [0x180067658]
jge 0x18002901c
mov rax, qword [0x180067640]
test r14d, r14d
jne 0x180029018
movzx eax, byte [rsp + 0x51]
mov qword [rbp - 0x80], rax
mov eax, dword [rsp + 0x68]
mov edx, edi
mov ecx, 0xf96
sub ecx, eax
mov eax, dword [rsp + 0x68]
sub ecx, eax
mov dword [rbp + 0x48], ecx
mov rax, qword [0x180067640]
imul r14d, eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
mov ecx, dword [0x18006760c]
mov eax, dword [0x180067660]
cmp ecx, eax
mov eax, dword [0x18006760c]
mov ecx, edi
sete dl
cmp eax, 0x3c
sete cl
cmp edx, ecx
jb 0x1800290b9
cmp byte [0x18006756e], dil
jne 0x1800290b9
mov rax, qword [rsp + 0x78]
imul rcx, rax, 0xffffffffffff675f
mov eax, r8d
cmp rax, rcx
jg 0x1800290b9
movzx ecx, byte [rsp + 0x51]
sub rcx, qword [0x180067668]
mov al, byte [rsp + 0x51]
add al, cl
mov ecx, 0x12
cmp word [0x180067654], di
mov byte [rsp + 0x51], al
movzx eax, byte [0x1800675e8]
cmovne eax, ecx
mov byte [0x1800675fe], al
mov eax, dword [rsp + 0x60]
add eax, 0x4bd
cmp dword [0x180067608], edi
mov dword [rbp - 0x30], eax
je 0x1800290eb
movzx ecx, word [0x180067584]
mov eax, dword [0x180067634]
cmp ecx, eax
jae 0x180029104
mov rax, qword [rbp - 0x68]
mov word [0x1800675fc], ax
jmp 0x180029104
mov eax, dword [0x1800675f0]
test eax, eax
je 0x180029104
movzx eax, word [0x180067654]
mov bl, 0x38
imul esi, eax, 0xcb6b
mov eax, dword [rsp + 0x60]
add eax, 0x495
mov dword [rbp - 0x30], eax
mov ecx, dword [0x180067650]
mov eax, dword [0x1800675f0]
cmp eax, ecx
ja 0x180029168
mov eax, dword [0x1800675f0]
not eax
cmp r8d, eax
je 0x18002917c
movzx ecx, word [0x180067584]
movabs rax, 0xe38e5d07b21f5
mov qword [0x180067658], rax
mov rax, qword [0x180067610]
imul rax, rcx
movzx ecx, byte [rsp + 0x52]
sub rcx, rax
movzx eax, word [0x1800675fc]
sub rcx, rax
mov qword [rbp - 0x58], rcx
jmp 0x18002917c
movzx ecx, word [rsp + 0x58]
movzx eax, word [rsp + 0x58]
xor ecx, esi
add ax, cx
mov word [rsp + 0x58], ax
mov eax, dword [rsp + 0x60]
add eax, 0x471
mov dword [rbp - 0x30], eax
mov al, byte [0x18006756f]
mov al, byte [rsp + 0x52]
movzx eax, word [rsp + 0x54]
movzx eax, byte [rsp + 0x52]
sub al, byte [0x18006756e]
add al, 0x1e
mov byte [rsp + 0x52], al
movzx r15d, word [rsp + 0x58]
movsx eax, word [0x180ce475e]
neg r15d
sub dword [0x180067664], eax
mov eax, dword [rbp + 0x1c]
imul ecx, eax, 0x2be
mov eax, dword [rbp + 0x1c]
imul edx, eax, 0x2be
xor edx, ecx
movabs rcx, 0xd004edfd858b7
add edx, 0x697
mov dword [rbp + 0x30], edx
movzx eax, word [rsp + 0x58]
imul rax, rcx
cmp byte [0x1800675be], dil
mov qword [0x180067610], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
je 0x180029210
cmp dword [0x1800675cc], edi
jne 0x180029249
mov rbx, qword [rbp - 0x58]
mov eax, 4
add bl, r14b
mov byte [rbp - 0x18], al
add bl, al
movzx eax, word [rsp + 0x54]
neg ax
not bl
mov eax, dword [0x180067630]
movzx r12d, word [0x180c50b58]
sbb ecx, ecx
not ecx
and ecx, 0xaf
add al, cl
mov byte [rsp + 0x51], al
mov eax, dword [rsp + 0x60]
add eax, 0x5609
mov dword [rbp + 0x1c], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, eax
mov qword [rbp - 0x80], rcx
mov eax, dword [rsp + 0x60]
add eax, 0x49f
mov dword [rbp - 0x30], eax
mov eax, dword [rsp + 0x60]
movzx edx, word [0x180067628]
add eax, 0x4a2
mov dword [rbp - 0x78], eax
movsx ecx, byte [rsp + 0x53]
call fcn.180031bbc
mov esi, eax
test eax, eax
je 0x1800292a7
mov eax, dword [0x1800675f0]
lea ebx, [rsi - 0x7a]
movsx ecx, al
movsx eax, r12b
imul eax, ecx
mov byte [rsp + 0x53], al
mov eax, dword [0x180067608]
mov ecx, edi
cmp qword [rbp - 0x40], rax
mov eax, edi
sete cl
cmp qword [rbp - 0x40], 0x11
sete al
cmp ecx, eax
jne 0x1800292d7
lea rcx, str.comdlg32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x180067650], eax
mov edx, dword [rbp - 0x78]
mov eax, dword [rbp + 0x1c]
add edx, eax
mov eax, dword [rbp + 0x1c]
imul r8d, eax, 0xa374
or r8d, edx
mov edx, dword [rbp - 0x60]
mov eax, dword [rbp - 0x60]
add r8d, 0xc9110794
mov ecx, dword [rbp - 8]
sub edx, eax
mov eax, dword [rbp - 8]
sub r12w, word [0x180067664]
imul ecx, edx
mov edx, 1
mov qword [0x180067648], rdi
imul eax, ecx
mov ecx, 0x4803
add eax, r8d
mov dword [rbp + 0x20], eax
mov byte [rsp + 0x53], dl
movzx eax, word [0x180067584]
imul esi, eax
mov rax, qword [rbp - 0x58]
add ax, cx
mov word [rsp + 0x54], ax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
mov word [0x180067584], dx
mov eax, dword [0x18006761c]
sub al, 0x1a
mov byte [0x1800675be], al
movzx eax, word [0x180067584]
test eax, eax
je 0x180029388
cmp eax, edx
jne 0x18002939d
mov al, byte [0x180e0021e]
mov byte [0x18006756e], al
mov al, byte [0x180bd5d30]
mov byte [0x180067586], al
jmp 0x18002939d
movzx eax, byte [rsp + 0x51]
movsx ecx, r12w
sub ecx, eax
mov al, byte [rsp + 0x51]
add al, cl
mov byte [rsp + 0x51], al
mov eax, dword [rsp + 0x60]
add eax, 0x41de
mov dword [rbp - 0x78], eax
mov eax, dword [rsp + 0x60]
add eax, 0x449
mov dword [rbp - 0x60], eax
mov r14d, dword [0x180067650]
mov eax, dword [0x1800675f0]
add r14d, 0x7f571219
sub eax, 0x59380afa
mov qword [0x180067640], rax
mov eax, dword [rsp + 0x60]
add eax, 0x480
mov dword [rbp - 0x30], eax
mov rax, qword [rbp - 0x70]
mov edx, dword [str.hZn0]
add ax, 0x7c
mov ecx, dword [str.hZn0]
add ecx, r13d
mov qword [rbp - 0x50], rax
movsx eax, byte [rbp - 0x18]
add edx, ecx
mov dword [str.hZn0], edx
mov edx, edi
mov ecx, dword [str.hZn0]
cmp ecx, eax
mov eax, dword [str.hZn0]
mov ecx, edi
setge dl
cmp eax, 0x23
setge cl
cmp edx, ecx
jb 0x180029475
movzx eax, word [rsp + 0x58]
xor r8d, r8d
mov ecx, r15d
mov r9d, 0xaa
mov qword [rsp + 0x20], rax
lea edx, [r8 + 0x1c]
call fcn.1800311f4
movsx ecx, byte [0x1800675fe]
not ecx
mov qword [rbp - 0x40], rax
test ecx, ecx
jne 0x1800294a5
mov eax, 0x723b
add ax, word [0x1800675fc]
mov word [rbp - 0x50], ax
mov eax, dword [rsp + 0x64]
shr eax, 1
mov dword [0x18006761c], eax
jmp 0x1800294a5
mov rax, qword [rbp - 0x68]
mov ecx, 0xa576d2f0
xor rax, rcx
movzx ecx, byte [rsp + 0x52]
cmp word [0x180067628], di
mov qword [0x180067658], rax
mov eax, edi
sete al
sub eax, dword [0x180067618]
add ecx, eax
mov qword [rbp - 0x28], rcx
mov ecx, dword [rbp - 0x60]
xor edx, edx
mov eax, dword [rbp - 0x78]
xor ecx, eax
mov eax, dword [rbp - 0x60]
sub ecx, eax
mov eax, dword [rbp - 0x60]
add eax, ecx
mov ecx, 0x9a
xor eax, 0x447b
mov dword [rbp - 0x60], eax
lea r8d, [rcx + 0x1f]
call fcn.180031098
mov dword [0x180067630], eax
mov eax, dword [0x180067630]
test eax, eax
je 0x1800294fc
movsx ecx, byte [0x18006756f]
mov eax, dword [0x180067650]
add al, cl
mov byte [0x18006756f], al
mov eax, dword [0x180bd5d30]
jmp 0x18002951a
mov al, byte [rsp + 0x50]
mov cl, byte [rsp + 0x50]
and cl, al
mov al, byte [rsp + 0x50]
add cl, al
mov eax, dword [0x180bd5d30]
mov byte [rsp + 0x50], cl
mov byte [rsp + 0x50], al
mov dword [rsp + 0x60], eax
mov rax, qword [0x1800675d0]
movzx eax, word [rsp + 0x58]
mov eax, dword [rsp + 0x60]
add eax, 0x3afc
mov dword [rbp - 0x30], eax
mov rax, qword [0x1800675d0]
test rax, rax
je 0x180029573
mov r9d, 0x22
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180031380
mov byte [0x18006756e], al
mov ecx, 0x8da
mov eax, dword [str.hZn0]
mov eax, dword [0x180067630]
add ax, cx
mov word [rsp + 0x54], ax
mov eax, dword [rsp + 0x60]
mov r9, qword [rbp - 0x28]
add eax, 0xdb12
mov dword [rbp - 8], eax
movzx eax, byte [rsp + 0x51]
cmp r9d, eax
jg 0x1800295b2
movzx eax, word [rbp - 0x50]
neg ax
mov eax, dword [str.hZn0]
sbb esi, esi
mov byte [0x180067583], 0x7d
neg esi
add esi, 0x86
imul esi, eax
not esi
jmp 0x180029615
cmp word [0x180067638], di
je 0x1800295f3
movzx eax, word [0x180067654]
test bl, bl
movzx edx, bl
cmovne eax, esi
mov dword [0x18006761c], eax
movzx ecx, byte [rsp + 0x51]
movzx eax, byte [0x1800675fb]
inc rcx
imul rax, qword [0x1800675d8]
add rdx, rcx
sub rdx, rax
mov qword [rbp - 0x68], rdx
jmp 0x180029615
mov al, byte [rsp + 0x51]
movzx ecx, byte [rsp + 0x52]
mov rax, qword [rbp - 0x58]
not rax
cmp rcx, rax
jg 0x180029615
mov eax, dword [0x180bd5d30]
mov qword [0x180067648], rax
mov eax, dword [rsp + 0x60]
mov edx, 0x5df
add eax, 0x42b
movzx r8d, bl
mov dword [rbp - 0x30], eax
mov r12d, 0xc8879933
movzx eax, word [0x1800675d8]
mov word [rsp + 0x58], ax
mov ecx, dword [0x1800675f0]
movzx eax, word [0x180067628]
add eax, 0x377866cd
imul ecx, r13d
mov dword [rbp - 0x78], r8d
add ecx, eax
mov eax, dword [0x180067660]
add eax, ecx
add eax, dword [rbp - 0x40]
add eax, r14d
cmp byte [0x180067583], dil
mov dword [0x1800675cc], eax
movsx eax, byte [0x18006756e]
cmovne eax, r8d
cdqe
mov qword [rbp - 0x58], rax
mov ecx, dword [rbp - 0x34]
mov eax, dword [rbp - 0x34]
xor ecx, eax
mov eax, dword [rbp - 0x20]
imul eax, ecx
imul ecx, eax, 0x9b
sub edx, ecx
mov ecx, dword [rbp - 8]
mov eax, dword [rbp - 8]
xor ecx, eax
sub edx, ecx
mov dword [rbp + 0x14], edx
mov qword [rbp - 0x58], 2
mov rax, qword [rsp + 0x78]
sub al, 0x51
mov byte [0x180067583], al
mov rax, qword [rbp - 0x58]
dec rax
cmp rax, 1
jne 0x1800296cc
sub r15d, r8d
mov eax, dword [0x180bd5d30]
mov ecx, 1
mov dword [rsp + 0x60], eax
call qword [sym.imp.USER32.dll_BeginDeferWindowPos]
mov rcx, rax
call qword [sym.imp.USER32.dll_EndDeferWindowPos]
mov eax, dword [0x18006761c]
mov r9, qword [rbp - 0x28]
test eax, eax
je 0x18002970c
mov eax, r9d
not eax
test eax, eax
je 0x18002970c
mov r10d, 1
mov r8d, r10d
jmp 0x180029715
mov r8d, edi
mov r10d, 1
movzx ecx, word [rsp + 0x54]
mov edx, edi
mov rax, qword [0x1800675e0]
cmp rcx, rax
setl dl
cmp edx, r8d
jb 0x180029779
movzx eax, byte [0x180067587]
cmp ax, word [0x180067628]
mov r12, qword [rbp - 0x18]
jae 0x18002975c
mov eax, dword [rsp + 0x64]
movzx ecx, al
imul eax, ecx, 0xae
add r12b, r14b
mov qword [rbp - 0x18], r12
mov byte [rsp + 0x52], al
jmp 0x1800297bf
movzx eax, word [0x1800675fc]
cmp eax, r14d
jne 0x1800297bf
mov eax, dword [0x180067634]
sub eax, 0x4476
mov qword [rbp - 0x80], rax
jmp 0x1800297bf
mov rcx, qword [0x180067610]
movsxd rax, r9d
cmp rcx, rax
je 0x180029798
mov eax, dword [rsp + 0x64]
imul eax, eax, 0xfa
mov qword [rbp - 0x70], rax
jmp 0x1800297bb
mov rax, qword [rbp - 0x58]
test r12d, r12d
je 0x1800297a9
mov ecx, dword [0x1800675f0]
jmp 0x1800297b0
mov rcx, qword [0x180067640]
mov dword [0x180067650], ecx
mov byte [rsp + 0x52], r10b
mov r12, qword [rbp - 0x18]
mov eax, dword [rsp + 0x60]
mov r9d, 0x29
add eax, 0xc4e3
mov word [0x180ce45b8], r13w
mov dword [rbp - 8], eax
mov rax, qword [0x180067678]
movzx edx, word [rsp + 0x54]
xor dl, byte [0x180067638]
movsx ecx, byte [0x180067648]
movsx r8d, al
imul r8d, ecx
movsx eax, r15b
movsx ecx, r13b
imul ecx, eax
mov eax, dword [0x180067630]
not r8b
add dl, cl
add dl, r8b
xor r8d, r8d
add al, dl
mov byte [0x18006762a], al
mov eax, dword [rsp + 0x60]
add eax, 0xcbca
mov dword [rbp - 0x34], eax
mov eax, dword [rsp + 0x60]
add eax, 0x461
mov dword [rbp - 0x30], eax
mov rax, qword [rbp - 0x70]
mov edx, dword [rbp - 0x34]
mov al, byte [0x180067664]
add al, 0x4e
and byte [0x1800675fa], al
mov eax, dword [rbp - 8]
or edx, eax
mov ecx, dword [rbp - 0x34]
mov eax, dword [rbp - 8]
add ecx, eax
imul ecx, edx
sub ecx, 0x456bad00
mov dword [rbp - 0x1c], ecx
xor ecx, ecx
movsxd rax, dword [str.hZn0]
movzx edx, word [0x180067584]
mov qword [rsp + 0x20], rax
call fcn.1800311f4
mov byte [0x18006756e], al
test al, al
je 0x1800298bf
movzx eax, bl
cmp qword [0x180067648], rax
jb 0x1800298a4
movzx eax, word [rsp + 0x58]
sub ax, word [rbp - 0x78]
mov word [rsp + 0x58], ax
jmp 0x1800298bf
mov ecx, dword [0x1800675f4]
add ecx, r13d
movsx eax, r12b
and r13d, ecx
sub eax, 0xc4
mov dword [0x1800675cc], eax
mov eax, dword [0x180bd5d30]
cmp r14d, 0xc5dc
mov dword [rsp + 0x60], eax
mov r8d, edi
movzx eax, word [rsp + 0x54]
sete byte [0x1800675bf]
add dword [0x180067664], eax
mov eax, 0x73
mov cl, byte [rsp + 0x50]
sub al, cl
movsxd r12, r13d
add byte [0x18006762a], al
mov eax, dword [rsp + 0x60]
add eax, 0x3e4
mov dword [rbp - 0x20], eax
mov eax, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x78]
imul rcx, rax
mov eax, dword [0x180bd5d30]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x60]
add eax, 0x591d
mov dword [rbp - 0x78], eax
mov eax, dword [rsp + 0x60]
add eax, 0x1531
mov dword [rbp - 0x30], eax
test r13d, r13d
mov ecx, dword [0x18006760c]
movzx edx, byte [0x1800675fa]
sete r8b
movzx eax, bl
or r8w, ax
movzx eax, r13w
xor ax, word [0x1800675cc]
sub r8w, ax
movzx eax, cx
movzx ecx, word [rbp - 0x40]
imul eax, edx
sub cx, ax
lea eax, [r12 - 0x5e]
add cx, r8w
mov word [0x180067628], cx
mov byte [rsp + 0x50], al
mov ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x20]
or ecx, eax
xor ecx, 0x5bf7
mov dword [rsp + 0x70], ecx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x1800675cc], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
movzx edx, byte [rsp + 0x51]
movsx eax, byte [rsp + 0x53]
cmp eax, edx
je 0x1800299db
imul ecx, dword [0x1800675f4], 0x56db
mov rax, qword [0x1800675d0]
add rax, rcx
mov qword [0x1800675d0], rax
jmp 0x180029a27
mov edx, dword [str.hZn0]
movsx eax, byte [rsp + 0x53]
not edx
cmp eax, edx
je 0x180029a27
movsx eax, byte [0x1800675be]
test bl, bl
mov ecx, dword [rbp - 0x28]
mov edx, edi
sete dl
xor edx, eax
movzx eax, byte [0x1800675fb]
xor eax, 0xc2de339d
not edx
add edx, eax
movzx eax, word [rsp + 0x58]
sub ecx, eax
mov eax, dword [0x180067630]
add eax, ecx
imul eax, edx
mov dword [0x1800675f4], eax
mov eax, dword [rsp + 0x60]
mov rdx, r12
add eax, 0x45b
movzx r8d, bl
mov ecx, 0xa1
mov dword [rbp - 4], eax
call fcn.180031dcc
mov byte [0x1800675bf], al
mov eax, dword [rsp + 0x60]
add eax, 0x6cd
mov dword [0x180067674], 0xa91be32
mov dword [rbp - 8], eax
movsx eax, byte [0x18006762a]
sub eax, 0x4b841d2f
mov dword [0x1800675cc], eax
mov eax, dword [rsp + 0x60]
add eax, 0x3cb
mov dword [rbp + 0x1c], eax
mov ecx, dword [0x18006760c]
movzx eax, byte [0x1800675fb]
cmp eax, ecx
jne 0x180029b37
mov eax, dword [0x18006760c]
movzx ecx, byte [rsp + 0x50]
mov rax, qword [rbp - 0x58]
sub rcx, rax
mov al, byte [rsp + 0x50]
add al, cl
mov byte [rsp + 0x50], al
mov r10d, 1
mov r9d, dword [rbp - 0x38]
mov eax, dword [0x180bd5d30]
mov rbx, qword [rbp - 0x40]
mov dword [rsp + 0x60], eax
mov qword [rbp - 0x68], 4
movzx ecx, byte [0x180067586]
movzx eax, byte [0x1800675bf]
sub ecx, eax
mov al, byte [0x180067586]
add al, cl
mov byte [0x180067586], al
mov rax, qword [rbp - 0x68]
dec rax
sub rax, 1
je 0x180029c23
sub rax, 1
je 0x180029bf8
cmp rax, 1
jne 0x180029c34
mov eax, r9d
and eax, 0x866a8d93
mov dword [0x180067674], eax
movsx eax, byte [rbp - 0x18]
sub eax, 0x2015
cdqe
mov qword [0x180067678], rax
jmp 0x180029c34
cmp byte [0x1800675be], 0xf0
jg 0x180029b6a
mov al, byte [rsp + 0x53]
cmp al, byte [0x1800675f8]
jge 0x180029b6a
mov eax, dword [rsp + 0x64]
mov r10d, 1
add al, 0x4e
add dword [0x180067618], r10d
mov byte [0x18006762a], al
jmp 0x180029ab5
movzx ecx, word [rsp + 0x54]
mov edx, edi
movsx eax, word [0x18006756c]
not ecx
cmp ecx, eax
mov ecx, dword [0x18006761c]
movsx eax, byte [0x18006762a]
sete dl
imul ecx, eax
cmp ecx, edx
je 0x180029bc9
mov eax, dword [0x180067634]
mov ecx, 0xffffff7e
sub ecx, eax
mov eax, dword [0x180067650]
add eax, ecx
mov rcx, 0xfffffffffffff857
mov dword [0x180067650], eax
mov rax, qword [rsp + 0x78]
sub rcx, rax
add qword [0x180067648], rcx
jmp 0x180029aaf
movsx ecx, byte [0x1800675f9]
not ecx
test ecx, ecx
je 0x180029aaf
mov r9d, dword [rbp - 0x38]
mov r10d, 1
mov r15d, dword [0x180bd5d30]
lea eax, [r9 - 0x4b]
mov byte [rsp + 0x50], al
jmp 0x180029ab9
mov eax, dword [0x180067650]
mov cl, r14b
sub cl, bl
add cl, byte [0x1800675fb]
sub cl, al
mov rax, qword [rbp - 0x58]
sub cl, 0x73
sar rax, 5
mov byte [0x1800675ff], cl
mov qword [rsp + 0x78], rax
jmp 0x180029c34
movzx eax, byte [rsp + 0x52]
imul ecx, eax, 0x768813ec
mov dword [0x1800675f0], ecx
mov eax, dword [rsp + 0x60]
mov r9, r10
add eax, 0x46e
movsxd r8, esi
mov dword [rbp - 0x20], eax
mov rdx, rbx
mov eax, dword [rsp + 0x60]
add eax, 0x59f
mov dword [rbp], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [0x180067664]
sub ecx, eax
movzx eax, byte [rsp + 0x52]
add eax, 0xffffce16
add ecx, eax
movzx eax, byte [0x180067583]
cmp ecx, eax
mov rax, qword [0x180067668]
sete byte [rbp - 0x10]
add rax, 0xffffffffffffff40
mov qword [0x1800675d8], rax
xor ecx, ecx
mov eax, dword [rsp + 0x60]
add eax, 0x3d0
mov dword [rbp + 8], eax
mov eax, dword [0x180bd5d30]
mov qword [rsp + 0x78], rax
mov rax, qword [0x180067600]
sub rax, 0x91
mov qword [0x180067610], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
call fcn.180031a60
mov qword [rbp - 0x48], rax
mov r8, rax
test ax, ax
jne 0x180029cf9
movzx ecx, word [0x180067584]
mov eax, dword [0x18006759c]
not cx
movsx ecx, cx
movsx edx, ax
imul edx, ecx
mov byte [rsp + 0x53], bl
mov word [rbp - 0x50], dx
jmp 0x180029d1b
mov eax, dword [0x180067650]
lea rax, [rbx - 0x7c83]
mov qword [rbp - 0x70], rax
mov rax, qword [0x1800675e0]
add rax, rbx
mov qword [0x1800675e0], rax
mov eax, dword [rsp + 0x60]
mov r9d, dword [rbp - 0x38]
add eax, 0x657
movsx r10d, byte [rbp - 0x18]
mov dword [rbp - 0x30], eax
movzx eax, byte [rsp + 0x50]
movzx ecx, word [0x180067638]
add r9d, eax
movzx eax, byte [rsp + 0x52]
add cx, cx
sub cx, ax
mov eax, dword [rsp + 0x60]
add eax, 0x4cb
mov word [0x180067638], cx
mov dword [rbp + 0x28], eax
mov rax, qword [rbp - 0x70]
movzx ecx, al
imul eax, ecx, 0xb6
mov ecx, edi
mov byte [0x1800675bf], al
mov al, byte [rsp + 0x51]
movzx edx, byte [rsp + 0x50]
test al, al
movzx eax, byte [rsp + 0x50]
sete cl
xor edx, ecx
movzx ecx, byte [0x1800675bf]
xor ecx, eax
imul eax, r10d, 0x3272fade
sub eax, ecx
add eax, 0x171b
add eax, edx
movzx edx, byte [rbp - 0x10]
mov dword [0x180067634], eax
mov eax, dword [rsp + 0x60]
add eax, 0x5d8
mov dword [rbp - 0x78], eax
mov eax, 4
mov qword [rbp - 0x80], rax
mov rax, qword [rsp + 0x78]
add rax, r12
mov qword [rsp + 0x78], rax
mov ecx, dword [rsp + 0x64]
movzx eax, byte [0x1800675fa]
imul ecx, edx
sub edx, eax
not ecx
lea eax, [rcx + rdx]
add eax, dword [0x180067674]
mov qword [0x180067620], rax
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x180029e54
sub rax, 1
je 0x180029e42
sub rax, 1
je 0x180029e30
sub rax, 1
je 0x180029e20
cmp rax, 1
jne 0x180029e62
movsx eax, r8w
add eax, 0x612d547e
mov dword [0x180067618], eax
jmp 0x180029e62
movsx eax, byte [0x1800675fe]
sub word [0x180067654], ax
jmp 0x180029e62
movzx eax, word [rsp + 0x58]
mov rcx, qword [rbp - 0x70]
add rcx, rax
mov qword [rbp - 0x70], rcx
jmp 0x180029e62
movzx eax, byte [rsp + 0x50]
imul rcx, rax, 0x13
mov qword [0x180067620], rcx
jmp 0x180029e62
mov r9d, dword [0x180067630]
xor r9d, 0xf99fee3f
mov eax, 3
mov qword [rbp + 0x38], rdi
mov byte [0x1800675be], al
mov r12d, 1
movsx eax, r8w
shl eax, 3
cdqe
mov qword [rbp - 0x68], rax
movzx eax, byte [rsp + 0x50]
mov rcx, qword [0x180067678]
xor rcx, rax
mov al, byte [rsp + 0x50]
add al, cl
movsx ecx, byte [0x1800675be]
mov byte [rsp + 0x50], al
test ecx, ecx
je 0x180029ef2
sub ecx, r12d
je 0x180029ed4
sub ecx, r12d
je 0x180029ec5
cmp ecx, r12d
jne 0x180029f10
mov eax, 0xaeb
mov word [0x180067670], ax
jmp 0x180029f10
imul eax, r14d, 0x22448695
mov dword [0x180067674], eax
jmp 0x180029f10
movsx ecx, byte [rsp + 0x53]
sub ecx, 0xcd
mov dword [0x18006761c], ecx
mov al, byte [rsp + 0x50]
sub al, r12b
mov byte [rsp + 0x50], al
jmp 0x180029f10
mov edx, dword [0x18006759c]
mov eax, dword [0x18006759c]
mov rcx, qword [0x180067620]
add rax, rdx
add ecx, eax
mov dword [0x18006759c], ecx
mov eax, dword [0x18006759c]
test eax, eax
jne 0x180029f45
cmp byte [0x1800675be], dil
je 0x180029f34
mov rax, qword [rbp - 0x58]
lea esi, [r15 - 0x26]
sub rax, r12
mov qword [rbp - 0x58], rax
jmp 0x180029f45
mov al, byte [rsp + 0x53]
movzx eax, word [rsp + 0x54]
xor al, 0x2e
sub byte [0x1800675bf], al
cmp esi, r9d
mov dword [rbp + 0x18], edi
mov ecx, edi
mov eax, edi
sete cl
cmp esi, 0x46
sete al
cmp ecx, eax
jbe 0x180029f88
mov rax, qword [0x1800675e0]
and rbx, rax
movzx eax, word [rsp + 0x54]
mov rcx, rbx
mov qword [rbp - 0x40], rbx
not rcx
sub rcx, rax
mov eax, dword [0x180067630]
add eax, ecx
mov dword [0x180067634], eax
jmp 0x180029fd8
mov rax, qword [0x180067600]
mov ecx, edi
add rax, 0xbe
mov eax, dword [rbp - 0x28]
sete cl
not eax
sub eax, ecx
mov ecx, r15d
movsxd r8, eax
mov eax, dword [0x18006760c]
mov rdx, qword [rbp - 0x80]
imul rdx, rax
mov rax, qword [0x1800675e0]
sub rcx, rdx
add rcx, r8
sub cl, al
mov al, byte [0x180067668]
add al, 0x32
not cl
mov byte [0x1800675fb], al
mov byte [rsp + 0x53], cl
mov ecx, dword [0x180067650]
mov r8d, edi
mov eax, dword [0x18006759c]
sub ecx, eax
mov eax, dword [0x180067650]
add eax, ecx
mov dword [0x180067650], eax
mov eax, dword [0x180067630]
test eax, eax
movsx ecx, byte [0x18006762a]
mov edx, dword [0x180067618]
cmovne ecx, esi
movsxd rax, ecx
mov qword [0x1800675e0], rax
mov eax, edi
mov rcx, qword [0x180067600]
cmp rdx, rcx
mov ecx, 8
setle r8b
cmp edx, 7
setbe al
cmp r8d, eax
je 0x18002a093
test esi, esi
je 0x18002a080
movsx ecx, byte [0x18006756e]
xor ecx, dword [0x180067664]
mov byte [rsp + 0x53], 0xf5
not ecx
mov eax, dword [0x18006760c]
mov rdx, qword [0x1800675e8]
sub rdx, qword [0x1800675d8]
imul ecx, eax
mov rax, qword [rbp - 0x68]
imul rdx, rcx
imul rax, rdx
not rax
mov qword [0x180067600], rax
jmp 0x18002a0b7
movzx ecx, byte [0x180067587]
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
jmp 0x18002a0b7
cmp byte [0x180067583], dil
je 0x18002a0b7
mov word [0x180067584], cx
mov ecx, 0x3585
mov rax, qword [rsp + 0x78]
add ax, cx
mov word [0x180067584], ax
mov r8d, dword [0x180067674]
xor edx, edx
lea ecx, [rdx + 0x72]
call fcn.180031dcc
mov qword [0x180067640], rax
mov rax, qword [0x180067640]
test rax, rax
jns 0x18002a172
movsx rcx, word [0x180067670]
mov edx, edi
mov rax, qword [rbp - 0x58]
cmp rax, rcx
mov rax, qword [rbp - 0x58]
mov ecx, edi
setle dl
cmp rax, 0x34
setle cl
cmp edx, ecx
ja 0x18002a11f
mov rax, qword [0x180067610]
mov rcx, qword [rbp - 0x80]
sub rcx, rax
mov rax, qword [rbp - 0x80]
and rax, rcx
mov qword [rbp - 0x80], rax
jmp 0x18002a19c
mov rax, qword [rbp - 0x70]
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x18002a15a
movzx ecx, byte [rsp + 0x51]
movzx edx, word [rsp + 0x58]
mov al, byte [rsp + 0x51]
add edx, ecx
and al, dl
mov byte [rsp + 0x51], al
mov rax, qword [rsp + 0x78]
add ax, bx
add ax, r12w
not ax
mov word [0x180067628], ax
jmp 0x18002a19c
mov eax, dword [0x180067660]
test eax, eax
jne 0x18002a19c
mov al, byte [rsp + 0x50]
test al, al
je 0x18002a19c
mov al, byte [rsp + 0x53]
jmp 0x18002a19c
movzx eax, word [0x180067670]
cmp r12w, ax
je 0x18002a19c
movsx ecx, byte [rsp + 0x53]
mov eax, dword [rsp + 0x64]
sub al, cl
mov byte [0x18006756f], al
mov rax, qword [rbp - 0x58]
neg eax
mov dword [0x1800675f4], eax
mov cl, byte [rsp + 0x52]
mov dl, 0x11
mov dword [rbp + 0x40], edi
call fcn.180031edc
movzx eax, al
mov edx, edi
mov qword [0x1800675e0], rax
mov ecx, edi
mov rax, qword [0x1800675e0]
cmp rax, 0x1d
mov rax, qword [0x1800675e0]
sete dl
test rax, rax
sete cl
cmp ecx, edx
ja 0x18002a20d
cmp qword [0x180067648], rdi
mov ecx, edi
movzx eax, word [0x180067628]
sete cl
cmp ecx, eax
jb 0x18002a20d
mov eax, dword [0x18006761c]
movzx ecx, word [0x1800675fc]
imul r14d, eax
movzx eax, r13w
imul ecx, eax
mov word [0x1800675fc], cx
mov al, byte [0x180067586]
mov ecx, 0xd2
sub cl, byte [0x180067608]
movsx r8, word [0x18006756c]
add cl, al
mov byte [0x180067586], cl
mov ecx, 0x61
mov edx, dword [0x180067634]
mov r9d, r15d
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x20], 0x33
call fcn.180031504
mov r12, rax
test eax, eax
je 0x18002a26f
lea eax, [r13*8]
mov dword [str.hZn0], eax
mov eax, dword [0x180bd5d30]
mov qword [rbp - 0x28], rax
jmp 0x18002a297
cmp qword [0x180067658], rdi
je 0x18002a297
movsx eax, byte [rsp + 0x53]
movzx edx, byte [0x1800675bf]
sub dx, ax
mov eax, dword [0x18006761c]
add dx, si
sub dx, ax
mov word [rbp - 0x48], dx
movsxd rcx, dword [rbp + 0x44]
mov dword [rbp + 0x50], edi
test ecx, ecx
jne 0x18002a496
mov edx, dword [0x18006760c]
xor r8d, r8d
mov ecx, 0x83
call fcn.180031098
mov ecx, dword [rbp - 0x28]
mov byte [0x1800675ff], al
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x180067650], eax
xor ecx, ecx
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
mov rdx, qword [0x180067610]
call fcn.1800316ec
movsx ecx, ax
mov dword [0x180067664], ecx
test ecx, ecx
je 0x18002a303
mov r15d, dword [0x180067650]
add r15d, 0x5d8226ba
jmp 0x18002a332
movsx ecx, byte [0x18006756f]
not ecx
test ecx, ecx
je 0x18002a332
mov al, byte [0x180067586]
test al, al
je 0x18002a332
mov ecx, dword [0x18006761c]
movsx eax, word [0x180067638]
not ecx
imul eax, ecx
mov dword [0x1800675cc], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rbp + 0x48]
add ecx, eax
mov r8, qword [0x180067668]
mov dword [rbp - 0x34], ecx
mov ecx, dword [rsp + 0x60]
mov eax, dword [rbp + 0x30]
add ecx, eax
shl r8, 3
mov dword [rbp + 0x30], ecx
movzx eax, word [rsp + 0x54]
cmp rax, qword [0x180067648]
mov qword [rbp - 0x48], r8
jbe 0x18002a370
mov rax, qword [rbp - 0x70]
sub r12d, eax
jmp 0x18002a37e
mov rax, qword [rsp + 0x78]
add eax, 0xfc21
mov qword [rbp - 0x28], rax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rbp + 0x20]
add ecx, eax
mov dword [rbp + 0x20], ecx
mov eax, dword [rbp - 0x34]
imul edx, eax, 0x316
mov eax, dword [rbp - 0x34]
sub edx, eax
mov eax, dword [rbp - 0x60]
imul ecx, eax, 0xaa
cmp edx, ecx
je 0x18002a4d6
mov eax, dword [0x180067608]
lea ecx, [r12 + 1]
mov dword [0x180067650], 0x60
lea r15d, [rax + r15*2]
mov eax, dword [0x180067650]
cmp eax, ecx
jne 0x18002a46d
mov rax, qword [0x1800675d0]
mov r9d, 1
cmp rax, r9
jne 0x18002a46d
mov al, byte [0x1800675fe]
test al, al
jne 0x18002a46d
movzx eax, word [0x180067670]
test ax, ax
je 0x18002a405
mov al, byte [rsp + 0x50]
mov edx, r9d
jmp 0x18002a407
mov edx, edi
mov ecx, edi
mov eax, r15d
cmp rax, rbx
setne cl
cmp ecx, edx
jb 0x18002a438
mov rax, qword [rbp - 0x80]
test rax, rax
mov byte [0x18006762a], r9b
movzx eax, byte [0x1800675bf]
jne 0x18002a432
mov rax, qword [rsp + 0x78]
mov qword [rbp - 0x58], rax
jmp 0x18002a46d
mov rdx, qword [rbp - 0x18]
test r8w, r8w
mov eax, edi
movsx ecx, dl
sete al
add eax, ecx
je 0x18002a46d
mov eax, dword [str.hZn0]
mov ecx, 0x8263
and ax, cx
mov word [0x1800675fc], ax
mov al, byte [rsp + 0x51]
add al, 0x25
mov byte [0x180067587], al
movsx eax, sil
xor r9d, r9d
imul ecx, eax, 0x2a
mov dword [0x180067650], 0x60
mov al, byte [rsp + 0x53]
sub al, cl
mov rcx, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov byte [rsp + 0x53], al
xor edx, edx
jmp 0x18002a4b1
mov al, byte [0x180bd5d30]
mov r9, rcx
mov rcx, qword [sym.imp.KERNEL32.dll_OpenProcess]
mov edx, 0x1fffff
mov byte [0x1800675bf], al
mov qword [rsp + 0x40], rdi
xor r8d, r8d
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov qword [rbp + 0x38], rax
mov eax, dword [rbp + 0x1c]
mov ecx, dword [rbp - 8]
mov edx, dword [rbp - 8]
sub ecx, eax
mov eax, dword [rbp + 0x1c]
imul edx, ecx
mov ecx, 0x2da
sub ecx, eax
mov eax, dword [rbp - 4]
imul eax, ecx
cmp edx, eax
je 0x18002b0e9
mov rcx, qword [0x1800675d0]
mov eax, 4
mov qword [0x1800675e8], rax
movzx ebx, di
movsx rax, byte [0x18006762a]
sub rcx, rax
mov rax, qword [0x1800675d0]
and rax, rcx
mov qword [0x1800675d0], rax
mov al, byte [rsp + 0x52]
test al, al
je 0x18002a61f
mov eax, 3
mov dword [0x1800675cc], eax
mov rax, qword [rbp - 0x68]
mov edx, dword [0x1800675cc]
imul rcx, rax, 0x3299
mov eax, 0x71ca
add ax, word [0x18006756c]
mov qword [0x180067648], rcx
mov ecx, edx
mov word [rsp + 0x54], ax
test edx, edx
je 0x18002a5f2
sub ecx, 1
je 0x18002a5c4
sub ecx, 1
je 0x18002a5b3
cmp ecx, 1
jne 0x18002a640
mov rax, qword [0x1800675e0]
mov ecx, 0x3432
sub cx, ax
movabs rax, 0x39009d710ce89
add word [0x18006756c], cx
mov qword [0x180067640], rax
jmp 0x18002a640
movzx eax, byte [0x180067583]
add eax, edx
mov dword [0x1800675cc], eax
jmp 0x18002a640
movsx rax, byte [0x18006756e]
movabs rcx, 0x643db11e2ce13
sar rax, 5
mov qword [rsp + 0x78], rax
mov rax, qword [0x1800675d0]
add rax, rcx
mov qword [0x180067668], rax
jmp 0x18002a640
mov rcx, qword [rsp + 0x78]
mov eax, r12d
imul rcx, rax
mov qword [rsp + 0x78], rcx
movzx ecx, word [rsp + 0x58]
mov eax, dword [0x1800675f0]
sub ecx, eax
movzx eax, word [rsp + 0x58]
add ax, cx
mov word [rsp + 0x58], ax
jmp 0x18002a640
cmp dword [0x1800675cc], edi
je 0x18002a640
mov rax, qword [rbp - 0x80]
shr rax, 6
mov qword [rbp - 0x68], rax
movzx eax, word [0x180067670]
mov byte [0x180d5d907], al
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
cmp dword [rbp - 0x28], edi
je 0x18002a72a
movsx edx, word [rbp - 0x50]
xor r8d, r8d
mov ecx, dword [0x180067630]
call fcn.180031098
mov ebx, eax
test ax, ax
jle 0x18002a749
mov rdx, qword [rbp - 0x80]
xor ecx, ecx
call fcn.180031868
mov word [0x1800675fc], ax
mov ecx, edi
mov al, byte [rsp + 0x53]
mov r9, rdi
cmp al, 0x58
mov r8, rdi
movzx eax, word [rsp + 0x58]
movzx edx, word [0x180067654]
sete cl
cmp eax, ecx
mov rcx, qword [rbp - 0x80]
mov eax, r15d
setbe r9b
cmp rcx, rdx
cmovae r8, rax
mov rax, qword [rbp - 0x80]
imul rax, r8
cmp r9, rax
mov r9, qword [rbp - 0x50]
je 0x18002a74d
mov eax, dword [0x18006761c]
mov edx, edi
movsx ecx, byte [rsp + 0x53]
test eax, eax
mov al, byte [0x180067587]
not ecx
movzx eax, word [rsp + 0x58]
sete dl
cmp edx, ecx
jl 0x18002a74d
mov eax, dword [0x180067630]
movzx r8d, byte [0x1800675fb]
movzx edx, al
xor r8d, 0xf7ff7fff
mov al, byte [rbp - 0x40]
not r8d
or al, byte [rbp - 0x18]
and r8d, 0x682196f0
movsx ecx, r9w
movzx ecx, cl
imul edx, ecx
sub al, dl
add al, r8b
mov byte [0x180067587], al
jmp 0x18002a74d
mov rcx, qword [0x180067610]
and rcx, qword [0x1800675d8]
mov rax, qword [0x180067610]
sub rax, rcx
mov qword [0x180067610], rax
mov r9, qword [rbp - 0x50]
mov eax, dword [rsp + 0x60]
add bx, bx
add eax, 0x54c
mov ecx, edi
mov dword [rbp + 0x48], eax
mov eax, dword [rsp + 0x60]
add eax, 0x4ac
mov dword [rbp - 0x60], eax
movzx eax, word [0x180067618]
mov word [0x18006756c], ax
mov eax, dword [rsp + 0x60]
add eax, 0x4f6
mov dword [rbp - 4], eax
mov eax, 0x1616
mov word [0x180067670], ax
imul eax, dword [0x180067668], 0xae9eedca
mov dword [0x180067634], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x52]
sub bx, ax
mov eax, dword [0x180067660]
test eax, eax
mov word [rbp - 0x48], bx
mov eax, edi
sete cl
cmp dword [0x180067618], edi
sete al
cmp eax, ecx
mov ecx, edi
sete byte [rsp + 0x53]
mov eax, dword [rsp + 0x60]
add eax, 0x3f3
mov dword [rbp - 4], eax
mov rdx, qword [rbp - 0x58]
movzx eax, word [0x180067654]
not rdx
cmp rdx, rax
sete cl
add ecx, esi
je 0x18002a822
lea eax, [r15 + r14]
test eax, eax
jne 0x18002a808
mov rax, qword [0x180067620]
mov al, byte [rsp + 0x50]
mov eax, dword [0x1800675f0]
mov al, byte [0x1800675f8]
add al, 0x7c
mov byte [0x1800675be], al
jmp 0x18002a837
movzx eax, word [0x180bd5d30]
mov word [rsp + 0x58], ax
lea eax, [rsi + 0x67]
mov byte [0x18006756f], al
mov eax, dword [rsp + 0x60]
add eax, 0x424
mov dword [rbp - 0x34], eax
mov al, byte [rsp + 0x50]
test al, al
je 0x18002a8a7
mov rcx, qword [rbp - 0x68]
mov rax, qword [rbp - 0x68]
cmp rcx, rax
jne 0x18002a881
mov rbx, qword [rbp - 0x40]
mov rax, rbx
not rax
mov qword [rbp - 0x58], rax
movzx ecx, byte [rsp + 0x50]
mov eax, dword [0x18006761c]
add ecx, 0xfa99
add ecx, eax
mov dword [0x18006761c], ecx
jmp 0x18002a8ab
test r13d, r13d
jne 0x18002a8a7
mov rbx, qword [rbp - 0x40]
test r9w, r9w
je 0x18002a89e
mov eax, dword [0x180067600]
mov dword [0x180067608], eax
jmp 0x18002a8ab
movsx eax, byte [0x18006756f]
jmp 0x18002a896
mov rbx, qword [rbp - 0x40]
mov eax, dword [rsp + 0x60]
mov edx, edi
add eax, 0x75b6
mov dword [rbp - 4], eax
movsx rcx, byte [rsp + 0x53]
mov rax, qword [rbp - 0x68]
cmp rcx, rax
mov al, byte [rsp + 0x53]
mov ecx, edi
sete dl
cmp al, 0x18
sete cl
cmp edx, ecx
jb 0x18002a9b4
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ecx, eax
mov qword [rbp - 0x58], rcx
mov rax, qword [rbp - 0x58]
test rax, rax
jle 0x18002a9a1
movzx r8d, byte [rsp + 0x50]
xor edx, edx
mov ecx, 0x9a
call fcn.180031dcc
mov byte [0x1800675be], al
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x18002a92c
mov al, byte [0x1800675fe]
test al, al
jne 0x18002a92c
mov r8d, 1
mov ecx, r8d
jmp 0x18002a934
mov ecx, edi
mov r8d, 1
movzx eax, byte [0x1800675fb]
add eax, ecx
je 0x18002a974
mov rcx, qword [rsp + 0x78]
mov edx, edi
mov eax, r12d
cmp rax, rcx
mov eax, edi
setge dl
cmp r12d, 0x2b
setae al
cmp edx, eax
jb 0x18002a9b4
movzx eax, word [rbp - 0x28]
add ax, r8w
movsx ecx, ax
movsx eax, word [rbp - 0x48]
imul eax, ecx
mov word [rbp - 0x48], ax
jmp 0x18002a9b4
cmp qword [0x180067668], rdi
mov eax, edi
mov esi, edi
sete al
test rbx, rbx
sete sil
add eax, r15d
add esi, eax
mov rax, qword [rsp + 0x78]
movsx ecx, al
not esi
imul eax, ecx, 0x32
mov byte [rsp + 0x53], al
jmp 0x18002a9b4
mov eax, dword [0x180067650]
mov rsi, qword [0x1800675d0]
add esi, 0x230812bb
movzx ecx, byte [0x180067586]
mov edx, edi
movzx eax, word [rsp + 0x54]
cmp cx, ax
mov al, byte [0x180067586]
mov ecx, edi
setbe dl
cmp al, 0x3a
setbe cl
cmp edx, ecx
jne 0x18002a9f5
lea eax, [r12 + 0x22]
mov ecx, 0xec
mov byte [rsp + 0x50], al
mov rax, qword [rbp - 0x70]
sub ax, cx
mov word [0x18006763c], ax
mov eax, dword [rbp - 0x34]
mov ecx, 0x42c
mov rdx, qword [rbp - 0x50]
sub ecx, eax
mov eax, dword [rbp - 0x34]
add eax, ecx
mov dword [rbp + 0x44], eax
movsx eax, dx
cmp dword [0x180067618], eax
jne 0x18002aa3f
movzx eax, byte [0x1800675fb]
test dx, dx
mov ecx, edi
sete cl
cmp eax, ecx
ja 0x18002aa3f
mov rcx, qword [rbp - 0x68]
mov eax, r14d
imul rcx, rax
mov rax, qword [rbp - 0x68]
add rax, rcx
mov qword [rbp - 0x68], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x60], eax
call qword [sym.imp.USER32.dll_GetFocus]
mov qword [rbp - 0x40], rax
test rax, rax
je 0x18002aa6b
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.USER32.dll_ArrangeIconicWindows]
mov eax, dword [rsp + 0x60]
add eax, 0xb178
mov dword [rbp + 0x20], eax
call qword [sym.imp.USER32.dll_GetFocus]
mov qword [rbp - 0x40], rax
test rax, rax
je 0x18002aa99
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.USER32.dll_IsWindowVisible]
mov eax, dword [rsp + 0x60]
lea edx, [r14 + 0x8a4e]
sub byte [rbp - 0x10], r13b
add eax, 0x435
mov dword [rbp - 4], eax
mov ecx, 0x3c58
mov rax, qword [rbp - 0x18]
movsx r10d, al
lea eax, [r10*4]
mov dword [0x180067630], eax
movzx eax, word [rbp - 0x50]
sub ax, cx
mov word [0x180067584], ax
mov eax, dword [rsp + 0x60]
add eax, 0x3f05
mov dword [rbp + 0x30], eax
mov byte [0x1800675fe], 0x4e
movsx eax, byte [0x1800675fe]
cmp eax, edx
jne 0x18002ab73
movzx eax, byte [rsp + 0x50]
add eax, 0x9754
cmp dword [0x180067674], eax
jne 0x18002ab73
mov al, byte [rsp + 0x53]
mov edx, edi
test al, al
mov r14d, 2
mov eax, dword [0x180067634]
movzx ecx, word [0x180067584]
sete dl
sub edx, eax
add ecx, edx
mov rcx, qword [0x180067620]
movsx eax, byte [rsp + 0x51]
sete r9b
movsx r8d, cl
imul r8d, eax
mov al, byte [0x1800675fe]
mov rcx, qword [rbp - 0x68]
add r8b, r9b
add al, r8b
mov byte [0x1800675f8], al
movsxd rax, esi
sub rcx, rax
movzx eax, r12w
mov qword [rbp - 0x68], rcx
mov ecx, 0x3150
sub ax, cx
mov word [rbp - 0x48], ax
mov byte [0x1800675fe], 0x4e
movabs rcx, 0x290bcff4dcfa1
mov eax, dword [0x18006759c]
add rcx, qword [0x1800675d8]
xor eax, ecx
mov dword [0x18006759c], eax
mov edx, dword [rsp + 0x5c]
movsx eax, byte [0x18006762a]
add eax, 0x1c7b9335
mov dword [0x180067618], eax
lea eax, [r10 - 0x16f2]
movsxd rcx, eax
mov eax, dword [rsp + 0x5c]
xor edx, eax
mov qword [0x1800675e8], rcx
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 0x10]
add ecx, eax
imul ecx, edx
mov edx, 0x10517
sub edx, ecx
mov ecx, dword [rbp - 4]
mov eax, dword [rbp + 0x20]
xor ecx, eax
mov eax, dword [rbp + 0x30]
or eax, ecx
or eax, 0xc2d5
sub edx, eax
mov dword [rbp - 4], edx
cmp qword [rbp + 0x38], rdi
jne 0x18002b0e9
movzx ecx, byte [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
movzx ecx, byte [0x1800675fa]
mov edx, edi
mov eax, eax
mov qword [rbp - 0x58], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov rax, qword [rbp - 0x70]
cmp rcx, rax
mov eax, edi
seta dl
cmp byte [0x1800675fa], 0x49
seta al
cmp edx, eax
ja 0x18002ad06
cmp dword [0x1800675f4], edi
je 0x18002ac65
movzx eax, word [rsp + 0x54]
mov r8b, byte [0x1800675fa]
test ax, ax
not r8b
sete al
add r8b, al
mov qword [rbp - 0x10], r8
jmp 0x18002ad39
mov rax, qword [rbp - 0x70]
movabs rcx, 0x5296215fb96a9
cmp rax, rcx
ja 0x18002acb0
movsx rax, byte [0x1800675f8]
cmp rbx, rax
jne 0x18002acb0
movzx eax, byte [rsp + 0x52]
mov ecx, 0x1e01
sub cx, word [0x180067608]
add ax, cx
mov word [0x18006763c], ax
mov al, sil
and al, 0x8a
mov byte [0x1800675fe], al
jmp 0x18002ad35
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18002accc
movzx ecx, word [rsp + 0x54]
movsx esi, word [0x180067638]
not ecx
imul esi, ecx
jmp 0x18002ad35
mov eax, dword [0x180067650]
not eax
test eax, eax
jne 0x18002ad35
mov rax, qword [0x180067678]
mov r8, qword [rbp - 0x10]
test rax, rax
jne 0x18002ad39
movsx eax, byte [0x180d5d92e]
movzx ecx, word [0x180067584]
sub r14d, eax
mov rax, qword [rbp - 0x70]
add rax, rcx
mov qword [rbp - 0x70], rax
jmp 0x18002ad39
mov rax, qword [rbp - 0x68]
test rax, rax
mov rax, qword [rbp - 0x70]
jne 0x18002ad19
mov eax, dword [0x18006760c]
movzx ecx, byte [0x1800675cc]
test r15d, r15d
mov dword [rsp + 0x64], eax
movzx eax, byte [0x1800675d8]
cmovne ecx, eax
mov byte [rsp + 0x51], cl
mov r8, qword [rbp - 0x10]
mov eax, dword [rsp + 0x5c]
mov edx, edi
add eax, 0x7766
mov dword [rbp + 0x10], eax
mov eax, 1
mov byte [rbp - 0x18], al
movzx eax, word [0x180067628]
add eax, 0x6a
mov qword [0x1800675e0], rax
movzx ecx, word [rsp + 0x54]
movzx eax, byte [0x180067583]
sub cx, ax
movzx eax, byte [0x1800675fb]
mov word [rsp + 0x54], cx
mov dword [str.hZn0], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x3fd
mov dword [rbp + 0x20], eax
mov rcx, qword [rbp - 0x68]
mov rax, qword [rsp + 0x78]
cmp rax, rcx
mov rax, qword [rsp + 0x78]
mov ecx, edi
setne dl
cmp rax, 0x17
setne cl
cmp edx, ecx
je 0x18002adca
mov rax, qword [rbp - 0x58]
sub rax, 0x91
mov qword [rbp - 0x80], rax
movzx eax, byte [0x180ef7a26]
mov word [rsp + 0x58], ax
jmp 0x18002ae0d
mov al, byte [0x180067586]
test al, al
je 0x18002ae0d
mov ecx, dword [0x180067660]
mov eax, dword [0x18006759c]
imul ecx, eax
mov dword [0x18006759c], ecx
movzx eax, word [rsp + 0x54]
mov rdx, qword [0x180067610]
xor rdx, rax
movzx eax, byte [rsp + 0x50]
not eax
movsxd rcx, eax
imul rcx, rdx
mov qword [0x180067610], rcx
mov eax, dword [rsp + 0x5c]
add eax, 0x29e4
mov ecx, r15d
mov dword [rbp + 0x20], eax
mov al, byte [0x180067628]
and al, byte [rbp - 0x28]
mov byte [0x18006756f], al
mov rax, qword [rbp - 0x80]
cmp rax, rcx
jb 0x18002ae46
movzx ecx, word [0x1800675fc]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov r13d, eax
jmp 0x18002ae81
cmp dword [0x180067664], edi
mov ecx, edi
mov edx, edi
movzx eax, r8b
sete cl
cmp eax, ecx
movsx ecx, byte [0x1800675fe]
setbe dl
add ecx, r14d
cmp edx, ecx
je 0x18002ae81
mov rax, qword [rbp - 0x80]
mov ecx, 0x74ba
add ax, word [0x1800675fc]
add ax, cx
mov word [rbp - 0x50], ax
mov eax, dword [rbp + 0x48]
mov eax, dword [rbp - 0x60]
mov eax, dword [rbp - 0x60]
mov eax, dword [rbp - 0x60]
mov eax, dword [rbp + 0x10]
or eax, 0x3e
sub eax, 0x777d
mov dword [rbp + 0x20], eax
mov rax, qword [0x1800675e0]
test rax, rax
je 0x18002af6b
mov r8, qword [0x180067678]
xor edx, edx
mov ecx, 0x9d
lea r9d, [rdx + 0x6f]
call fcn.180031380
mov rcx, qword [rsp + 0x78]
mov dword [rbp - 0x28], eax
test rcx, rcx
jne 0x18002aed3
mov cl, byte [rsp + 0x51]
movsx rdx, word [0x180067638]
xor r9d, r9d
mov r8d, dword [0x18006760c]
xor ecx, ecx
mov qword [rsp + 0x20], rdx
lea edx, [r9 + 0x5a]
call fcn.1800311f4
movsx ecx, byte [0x18006756e]
not ecx
mov qword [rbp - 0x10], rax
movsxd rdx, ecx
mov rcx, qword [rbp - 0x70]
cmp rdx, rcx
jb 0x18002af6b
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
movzx r9d, word [rsp + 0x58]
movsxd rcx, dword [0x180067664]
mov r8, qword [0x180067658]
mov rdx, qword [0x1800675e8]
not r8
mov byte [0x1800675fb], al
mov rax, qword [rbp - 0x68]
mov rax, rcx
mov ecx, edi
cmp rax, r8
mov eax, edi
setge cl
cmp rdx, r9
setbe al
xor ecx, eax
mov eax, 1
cmp ecx, eax
jne 0x18002af6b
mov ecx, eax
call qword [sym.imp.USER32.dll_BeginDeferWindowPos]
mov rcx, rax
call qword [sym.imp.USER32.dll_EndDeferWindowPos]
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 0x44]
add ecx, eax
mov dword [rbp + 0x10], ecx
call qword [sym.imp.USER32.dll_GetShellWindow]
mov word [0x1800675fc], ax
mov eax, dword [rsp + 0x5c]
add eax, 0x6b4
mov dword [rbp - 0x34], eax
movzx ecx, byte [rsp + 0x51]
movsx eax, word [0x18006756c]
cmp eax, ecx
jl 0x18002b032
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
je 0x18002afc8
mov rcx, rax
call qword [sym.imp.USER32.dll_GetMenu]
call qword [sym.imp.USER32.dll_EndMenu]
mov rdx, qword [rbp - 0x28]
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp - 4]
add ecx, eax
mov dword [rbp - 4], ecx
mov ecx, dword [rbp + 0x10]
mov eax, dword [rbp - 4]
sub ecx, eax
mov eax, dword [rbp - 0x34]
add ecx, eax
mov eax, dword [rbp - 0x34]
cmp eax, ecx
je 0x18002b0e9
movzx eax, word [0x1800675fc]
test rbx, rbx
movsx ecx, byte [0x1800675ff]
cmovne ecx, eax
lea eax, [rbx + 0x6e]
mov dword [0x180067650], ecx
mov byte [0x180067586], al
movsx eax, byte [0x18006762a]
cmp edx, eax
jl 0x18002b06a
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov dword [0x180067618], eax
jmp 0x18002b0e1
movzx eax, word [rsp + 0x58]
mov rdx, rdi
test ax, ax
mov eax, dword [0x18006760c]
cmove rdx, rbx
inc rax
add rax, rdx
je 0x18002afc8
mov rdx, qword [rbp - 0x28]
mov eax, 4
add eax, edx
mov word [0x180067638], ax
jmp 0x18002afcc
cmp dword [0x1800675f4], edi
je 0x18002b085
mov eax, dword [0x1800675f0]
add ax, word [rbp - 0x48]
mov word [0x180067654], ax
jmp 0x18002b0e1
cmp qword [0x1800675d8], rdi
mov eax, edi
mov ecx, edi
sete al
cmp esi, eax
mov rax, qword [0x180067678]
setg cl
cmp rax, 0x7fe
sete dil
cmp ecx, edi
jbe 0x18002b0db
movzx eax, word [rsp + 0x58]
movzx ecx, word [0x180067628]
add ax, cx
xor cx, ax
mov word [0x180067628], cx
mov rcx, qword [rbp - 0x80]
mov al, byte [0x180067618]
add rcx, rbx
and al, cl
mov byte [rsp + 0x53], al
jmp 0x18002b0e1
mov al, byte [0x180067587]
mov eax, dword [rbp + 0x20]
jmp 0x18002eb93
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor r9d, r9d
mov qword [rsp + 0x40], rdi
xor r8d, r8d
mov qword [rsp + 0x38], rdi
xor edx, edx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov rcx, qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdx, rax
mov qword [rsp + 0x40], rdi
mov r9d, 0x2000
mov qword [rsp + 0x38], rdi
mov r8d, 8
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov r8d, dword [rbp + 8]
mov ecx, dword [rbp - 0x20]
mov edx, dword [rbp]
imul r8d, ecx
mov ecx, dword [rbp - 0x20]
add edx, ecx
mov qword [rbp + 0x20], rax
cmp r8d, edx
je 0x18002b91f
cmp dword [rbp - 0x28], r12d
jae 0x18002b19a
movzx eax, word [0x1800675fc]
movabs rcx, 0xbc7a82628fa88
cmp rax, rcx
jbe 0x18002b19a
movzx eax, word [rsp + 0x54]
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov qword [0x1800675e8], rcx
mov eax, dword [0x180bd5d30]
lea rcx, [0x18004ba10]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, 0x60
mov ecx, edi
not eax
setge cl
shr eax, 0x1f
cmp eax, ecx
je 0x18002b1f7
mov eax, dword [0x18006759c]
mov rdx, rdi
test eax, eax
mov ecx, edi
mov rax, qword [0x180067620]
not rax
sete dl
cmp rax, rdx
mov eax, dword [0x1800675f0]
not eax
setne cl
cmp ecx, eax
je 0x18002b1f7
mov rax, qword [rbp - 0x50]
mov word [rsp + 0x54], ax
mov eax, dword [rsp + 0x5c]
movabs rcx, 0xc9cbec6e74cf1
add eax, 0x2cc3
mov r8, rbx
mov dword [rbp], eax
not r8
mov edx, dword [str.hZn0]
movsxd rax, dword [0x180067664]
xor rax, rcx
imul edx, r14d
mov rcx, rdi
mov qword [rbp - 0x40], r8
sub rdx, rax
mov rax, qword [rbp - 0x68]
test rax, rax
mov al, byte [0x18006756c]
sete cl
sub al, byte [rbp - 0x10]
xor rcx, r8
imul rcx, rdx
movzx edx, al
movzx ecx, cl
imul edx, ecx
mov byte [0x180067586], dl
mov eax, dword [rsp + 0x5c]
mov ecx, dword [0x180067674]
add eax, 0x42b
add ecx, 0xce25365a
mov dword [rbp], eax
mov qword [rbp - 0x58], rcx
mov eax, dword [rsp + 0x5c]
add eax, 0x438
mov dword [rbp], eax
movzx eax, byte [rsp + 0x51]
movzx edx, word [rsp + 0x54]
movsx ecx, byte [0x1800675f9]
not ecx
imul edx, eax
mov eax, edi
not edx
add edx, ecx
movzx ecx, word [0x180067584]
not ecx
cmp edx, ecx
sete al
mov esi, eax
movsx eax, word [rsp + 0x54]
movsx ecx, al
imul eax, ecx, 0x37
mov cl, byte [0x18006756e]
not cl
add cl, byte [rbp - 0x48]
mov byte [0x1800675f9], al
mov eax, 2
mov word [0x18006756c], ax
mov rax, qword [rbp - 0x68]
mov dl, byte [rsp + 0x51]
sub cl, al
add dl, cl
mov rcx, qword [0x180067678]
mov rax, qword [rbp - 0x58]
add cl, 0x17
add cl, al
not cl
or cl, dl
mov byte [0x1800675ff], cl
movsx ecx, word [0x18006756c]
test ecx, ecx
je 0x18002b349
sub ecx, 1
je 0x18002b32d
cmp ecx, 1
jne 0x18002b35e
mov al, byte [rsp + 0x53]
mov rax, qword [0x180067610]
mov eax, dword [0x18006760c]
sub eax, 0x49e5b59
mov qword [rbp - 0x68], rax
jmp 0x18002b35e
movsx eax, byte [0x18006756f]
mov edx, r14d
sub edx, eax
mov al, byte [0x18006756f]
add al, dl
mov byte [0x18006756f], al
jmp 0x18002b35e
mov eax, dword [rsp + 0x64]
movzx ecx, byte [0x180067583]
sub cx, ax
mov word [0x180067638], cx
mov eax, dword [rbp]
imul ecx, eax, 0x61dc
xor ecx, 0x19cdd83
mov dword [rbp + 0x10], ecx
mov rcx, qword [0x180067640]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
test r15d, r15d
mov ecx, edi
mov qword [rbp - 0x18], rax
mov edx, edi
mov byte [rsp + 0x6c], al
sete cl
movsx eax, word [0x180067638]
cmp ecx, eax
movsx eax, word [rbp - 0x50]
sete dl
add edx, eax
je 0x18002b3b4
mov byte [0x1800675f9], 0x63
mov rax, qword [rbp - 0x68]
mov byte [0x180cfa2a3], al
mov eax, dword [0x180bd5d30]
mov edx, edi
mov dword [rsp + 0x5c], eax
mov ecx, edi
movsx eax, byte [0x18006756f]
cmp ax, word [0x18006756c]
mov al, byte [0x18006756f]
setl dl
cmp al, 0x34
setl cl
cmp edx, ecx
jne 0x18002b3fc
mov eax, 0x8cec
mov word [rsp + 0x54], ax
mov rax, qword [0x1800675e0]
imul r15d, eax, 0xc259f3f8
jmp 0x18002b415
test r12d, r12d
je 0x18002b415
movzx ecx, word [0x180067648]
movzx eax, si
imul ecx, eax
mov word [0x180067654], cx
mov eax, dword [rsp + 0x5c]
xor r8d, r8d
add eax, 0xe61f
xor ecx, ecx
mov dword [rbp + 8], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x465
mov dword [rbp], eax
movabs rax, 0x67b0a7cd9e9d4ba0
mov qword [0x180067658], rax
mov eax, dword [rsp + 0x5c]
add eax, 0xdf9
mov dword [rbp], eax
mov edx, dword [0x18006760c]
call fcn.180031dcc
mov qword [0x1800675d8], rax
test rax, rax
jne 0x18002b476
mov rax, qword [0x180067620]
xor eax, 0x41
mov dword [0x180067664], eax
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
mov edx, edi
mov eax, 0x37
mov dword [rbp - 0x28], ecx
cmp ecx, eax
mov eax, edi
sete dl
test ecx, ecx
sete al
cmp eax, edx
jne 0x18002b4eb
mov edx, 0xf0
mov ecx, 0x4a
call fcn.180031868
movsxd rcx, eax
mov qword [rbp - 0x80], rcx
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18002b4c8
movzx eax, word [rsp + 0x54]
add ax, r12w
mov word [rsp + 0x54], ax
jmp 0x18002b4ff
cmp dword [0x180067608], 0x3c65d86b
je 0x18002b4ff
lea eax, [rbx - 0x21]
mov byte [rsp + 0x51], al
mov r15, qword [0x180067620]
sub r15d, 0x40ca
jmp 0x18002b4ff
movzx eax, word [rsp + 0x54]
test ax, ax
je 0x18002b4ff
mov al, byte [rsp + 0x50]
mov byte [0x18006762a], al
mov ecx, dword [rbp]
xor r8d, r8d
mov eax, dword [rbp + 8]
or ecx, eax
mov eax, 0xf740
mov qword [rsp + 0x20], 0x85
sub eax, ecx
movabs rcx, 0xe2ae319bb2ee2
mov dword [rbp + 8], eax
mov al, byte [rsp + 0x51]
add al, byte [0x180067648]
mov byte [rsp + 0x51], al
movsx eax, byte [0x1800675be]
shl eax, 2
cdqe
mov qword [0x180067648], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov eax, r12d
imul rax, rcx
mov qword [rbp - 0x58], rax
mov eax, dword [rsp + 0x5c]
mov r9d, dword [0x180067608]
add eax, 0x407
movsxd rdx, dword [0x180067664]
movsx rcx, word [0x180067638]
mov dword [rbp], eax
call fcn.1800311f4
mov word [rbp - 0x48], ax
mov eax, dword [rsp + 0x5c]
add eax, 0x3c7
mov dword [rbp], eax
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.USER32.dll_GetLastActivePopup]
mov ecx, eax
mov qword [0x180067600], rcx
mov eax, dword [rsp + 0x5c]
add eax, 0x4b2
mov dword [rbp], eax
mov rax, qword [rbp - 0x70]
movzx edx, word [rsp + 0x54]
movzx ecx, word [0x1800675fc]
imul edx, ecx
mov ecx, 0x98c
mov dword [0x180067664], 0xf903988b
mov word [rsp + 0x54], dx
mov al, byte [0x180067586]
mov eax, dword [rbp]
sub ecx, eax
mov dword [rbp], ecx
cmp qword [rbp + 0x20], rdi
jne 0x18002b91f
movzx ecx, byte [0x1800675fb]
mov eax, 0xaaea
xor ax, word [0x1800675e8]
mov word [0x1800675fc], ax
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [rsp + 0x54], ax
mov ecx, 0x37
movzx eax, word [rsp + 0x54]
mov edx, edi
cmp ax, cx
movzx eax, word [rsp + 0x54]
mov ecx, edi
seta dl
test ax, ax
setne cl
cmp ecx, edx
jbe 0x18002b66e
mov al, byte [rsp + 0x50]
test al, al
je 0x18002b64e
add esi, 0x8ca0b83f
mov qword [rbp - 0x28], rsi
jmp 0x18002b672
mov eax, dword [0x18006760c]
mov rsi, qword [rbp - 0x28]
imul ecx, eax, 0x8865f9e8
test ecx, ecx
jne 0x18002b672
movzx eax, word [rsp + 0x54]
xor al, 0xe2
mov byte [rbp - 0x10], al
jmp 0x18002b672
mov rsi, qword [rbp - 0x28]
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov byte [0x1800675fe], al
mov r8d, edi
mov ecx, dword [rsp + 0x5c]
mov edx, edi
mov eax, dword [rbp + 0x10]
add ecx, eax
mov dword [rbp + 0x10], ecx
mov rcx, qword [0x180067600]
movsx rax, word [0x180067638]
cmp rcx, rax
mov rax, qword [0x180067600]
setg r8b
cmp rax, 0x2a
setg dl
cmp r8d, edx
je 0x18002b794
movsx ecx, byte [rbp - 0x18]
xor edx, edx
call fcn.180031bbc
movsx rdx, byte [0x18006756e]
mov r9d, 0xde
xor r8d, r8d
mov dword [0x180067634], eax
lea ecx, [r9 - 0xd]
call fcn.180031a60
mov byte [0x180067587], al
mov edx, edi
mov al, byte [0x180067587]
mov ecx, edi
cmp al, 0x26
mov al, byte [0x180067587]
seta dl
test al, al
setne cl
cmp ecx, edx
ja 0x18002b735
mov eax, dword [0x18006760c]
add eax, eax
mov qword [0x180067648], rax
mov eax, dword [0x18006760c]
shl al, 6
mov byte [0x18006756f], al
jmp 0x18002b794
mov ecx, dword [str.hZn0]
mov al, byte [rsp + 0x50]
movzx r8d, byte [0x1800675cc]
add cl, al
movzx eax, byte [rbp - 0x50]
imul r8d, eax
mov rax, qword [0x1800675d0]
not r8b
xor r8b, cl
mov ecx, dword [0x180067660]
test r13d, r13d
sete dl
xor dl, al
mov al, byte [0x18006756f]
sub dl, r8b
add cl, dl
add al, cl
mov ecx, 0xa7
mov byte [rbp - 0x10], al
mov eax, dword [0x18006760c]
movzx edx, ax
imul edx, ecx
mov word [0x180067628], dx
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 8]
add ecx, eax
mov dword [rbp + 8], ecx
mov al, byte [rsp + 0x6c]
test esi, esi
jne 0x18002b7ac
mov al, byte [rsp + 0x53]
mov cl, byte [0x1800675fb]
movsx esi, al
mov al, cl
sub al, byte [0x1800675be]
or cl, al
mov byte [0x1800675fb], cl
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp]
add ecx, eax
mov dword [rsp + 0x5c], ecx
mov edx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x5c]
sub edx, eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 8]
add ecx, eax
cmp ecx, edx
je 0x18002b91f
mov al, byte [0x18006756f]
lea ecx, [r12 - 0x97]
mov byte [0x1800675fe], 0x5b
mov ebx, 0x4e36
mov qword [rbp - 0x80], rcx
mov word [0x18006763c], bx
cmp r12d, 0x4e35
jne 0x18002b907
test r14d, r14d
je 0x18002b8a0
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x18002b858
cmp qword [rbp - 0x40], rdi
je 0x18002b858
movsx eax, byte [0x18006756f]
sub word [0x18006756c], ax
movzx eax, word [rsp + 0x54]
movzx ecx, word [rsp + 0x58]
add cx, ax
mov word [rsp + 0x54], cx
jmp 0x18002b8f0
mov al, byte [0x1800675fe]
not r15d
movzx eax, word [rsp + 0x58]
mov rdx, qword [0x1800675d0]
not eax
movsxd rcx, eax
movzx eax, word [rsp + 0x58]
add rdx, rcx
sub r15d, eax
not rdx
not r15d
imul r15d, edx
mov dword [rsp + 0x64], r15d
mov al, byte [0x180067586]
mov al, byte [rsp + 0x51]
mov al, byte [rsp + 0x50]
mov eax, dword [rsp + 0x64]
jmp 0x18002b8f0
mov eax, dword [str.hZn0]
cmp eax, r13d
jle 0x18002b8f0
movzx ecx, byte [rsp + 0x50]
mov eax, dword [0x180067634]
cmp ecx, eax
jae 0x18002b8f0
movzx ecx, word [rsp + 0x54]
movsx eax, word [0x180067638]
cmp ecx, eax
jne 0x18002b8f0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18002b8dc
mov al, byte [0x1800675be]
jmp 0x18002b8e2
mov al, byte [0x1800675fe]
movsx eax, al
mov word [0x180067654], ax
mov rax, qword [rbp - 0x80]
mov eax, 1
cmp byte [0x18006756e], al
jne 0x18002b907
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov byte [rsp + 0x50], al
mov rax, qword [0x180067610]
mov eax, 0xa
mov word [0x18006763c], bx
jmp 0x18002eb93
mov rdx, qword [rbp + 0x20]
lea rcx, [fcn.180040a60]
mov qword [rsp + 0x40], rdi
mov r9d, 0x2000
mov qword [rsp + 0x38], rdi
xor r8d, r8d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov rdx, qword [rbp + 0x20]
lea r9, [rbp + 0x18]
mov rcx, qword [rbp + 0x38]
mov r8d, 0x2000
call fcn.18001fa5c
test eax, eax
je 0x18002bec0
movsxd rax, r13d
movabs rcx, 0xa993525396a6e
add rcx, rax
mov edx, 1
cmp qword [0x1800675e8], rcx
mov byte [0x18006762a], 0xbe
jne 0x18002b9a2
mov eax, dword [0x18006759c]
add eax, r14d
cmp eax, edx
je 0x18002b985
movsx eax, byte [rsp + 0x50]
mov r10, qword [rbp - 0x18]
mov r9, qword [rbp - 0x28]
imul eax, eax, 0x3f
add r10b, al
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov byte [rsp + 0x53], 0xb6
mov eax, dword [rsp + 0x5c]
add eax, 0xa3d3
mov qword [rbp - 0x18], r10
mov dword [rbp - 0x34], eax
mov eax, r12d
mov rbx, qword [0x1800675e0]
neg eax
mov eax, 0xd79dd9ea
sbb rcx, rcx
neg rcx
add rcx, rax
mov eax, dword [0x180067660]
mov rdx, qword [0x180067658]
sub rbx, rcx
and rdx, rax
mov qword [rbp - 0x40], rbx
add qword [0x180067658], rdx
mov ecx, edi
mov eax, dword [rsp + 0x5c]
add eax, 0xa243
mov dword [rbp - 0x20], eax
mov eax, dword [0x180067660]
cmp r9d, eax
mov eax, edi
setne cl
cmp r9d, 0x5d
setne al
cmp ecx, eax
je 0x18002ba63
movzx eax, word [rsp + 0x54]
mov edx, edi
movzx ecx, word [0x1800675fc]
imul ecx, eax
movzx eax, word [rsp + 0x54]
test r10b, r10b
sete dl
add eax, 0x69f0fe8e
sub edx, ecx
add eax, edx
cdqe
mov qword [0x1800675e0], rax
jmp 0x18002bacc
mov rax, qword [0x180067620]
mov ecx, edi
test rax, rax
mov r8d, edi
mov eax, dword [str.hZn0]
mov edx, dword [0x180067650]
sete cl
cmp ecx, eax
not edx
movsx eax, word [rbp - 0x48]
mov ecx, edi
setge r8b
cmp edx, eax
setne cl
cmp r8d, ecx
je 0x18002bacc
movsx ecx, r10b
mov eax, ecx
not eax
movsxd r8, eax
mov rax, qword [rbp - 0x70]
mov edx, dword [0x180067664]
add r8, rax
add edx, dword [0x1800675cc]
mov eax, r15d
not eax
not edx
sub eax, ecx
xor r8, rax
add edx, r8d
mov dword [0x180067660], edx
mov eax, dword [rsp + 0x5c]
add eax, 0x7820
cmp dword [0x1800675cc], edi
mov dword [rbp], eax
je 0x18002baf5
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov r9, qword [rbp - 0x28]
movzx eax, ax
mov dword [0x180067608], eax
jmp 0x18002bb01
movzx eax, word [rsp + 0x54]
add eax, 0x7f8b
add esi, eax
lea eax, [r13 + 0x3b]
mov r8d, 0x7c249a44
movsxd rcx, eax
mov rax, qword [0x180067610]
mov dword [0x180067664], r8d
cmp rax, rcx
jne 0x18002bc0e
mov rbx, qword [rbp - 0x50]
mov edx, 1
movzx eax, byte [rsp + 0x50]
movsx ecx, byte [0x1800675f8]
add ecx, eax
cmp ecx, edx
jne 0x18002bc0a
mov rcx, qword [0x180067600]
movsxd rax, esi
cmp rcx, rax
jle 0x18002bb9a
movsx ecx, bx
cmp ecx, esi
jg 0x18002bb7a
movsx eax, byte [0x1800675be]
add eax, 0xe3
cdqe
mov qword [rbp - 0x70], rax
mov al, byte [rsp + 0x53]
xor al, 0x2e
mov byte [0x180067583], al
jmp 0x18002bbec
mov eax, dword [rsp + 0x64]
add al, 0x64
cmp byte [0x1800675f8], dil
mov byte [rsp + 0x53], al
cmovne cx, word [0x180067674]
mov word [rsp + 0x58], cx
jmp 0x18002bbec
cmp word [0x18006763c], di
jne 0x18002bbaf
mov al, byte [0x1800675f9]
mov ecx, edi
test al, al
je 0x18002bbb1
mov ecx, edx
cmp word [0x18006756c], di
mov eax, edi
cmove eax, r15d
cmp eax, ecx
jb 0x18002bbec
mov rax, qword [0x1800675e8]
mov ecx, 0xa8e384bc
xor rax, rcx
mov qword [0x180067658], rax
mov rax, qword [rbp - 0x70]
mov r13d, dword [0x1800675f0]
not eax
imul r13d, eax
not r13d
lea eax, [r13 + 0x3b]
mov dword [0x180067664], r8d
movsxd rcx, eax
mov rax, qword [0x180067610]
cmp rax, rcx
je 0x18002bb2e
mov rbx, qword [rbp - 0x40]
movzx ecx, word [0x1800675fc]
mov rax, qword [rbp - 0x80]
cmp rcx, rax
jb 0x18002bc3a
mov al, byte [rsp + 0x51]
add al, 0x23
mov byte [0x18006756f], al
mov r12d, dword [0x180067650]
xor r12d, 0x282a
jmp 0x18002bc74
mov al, byte [rsp + 0x50]
test al, al
je 0x18002bc74
movzx eax, byte [rsp + 0x51]
mov edx, r9d
movsx ecx, word [0x180067638]
sub edx, r14d
imul ecx, eax
movsx eax, byte [0x18006756e]
sub ecx, eax
add ecx, dword [0x180067618]
sub rdx, rcx
add rdx, qword [0x180067658]
mov qword [rbp - 0x70], rdx
mov edx, dword [rbp - 0x20]
mov eax, dword [rbp - 0x34]
mov ecx, dword [rbp - 0x20]
imul edx, eax
mov eax, dword [rbp - 0x34]
add ecx, eax
mov eax, 0x67d76641
or ecx, edx
sub eax, ecx
mov ecx, 0x6524
mov dword [rbp], eax
movzx eax, word [0x18006763c]
sub eax, 0xdc
mov dword [0x180067660], eax
mov al, byte [0x1800675e8]
sub al, 0x75
mov byte [0x18006756f], al
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov rax, qword [rbp - 0x58]
add ax, cx
mov ecx, dword [rsp + 0x5c]
mov word [rbp - 0x48], ax
mov eax, dword [rbp + 0x14]
add ecx, eax
mov dword [rbp + 0x14], ecx
call qword [sym.imp.USER32.dll_GetCapture]
mov ecx, eax
mov qword [0x180067668], rcx
mov ecx, dword [rbp - 0x1c]
mov eax, dword [rsp + 0x5c]
add ecx, eax
mov dword [rbp - 0x1c], ecx
mov eax, dword [rsp + 0x5c]
add eax, 0x4bd
mov dword [rsp + 0x5c], eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x5c]
sub ecx, eax
mov eax, dword [rbp - 0x1c]
add ecx, eax
mov eax, dword [rsp + 0x5c]
cmp ecx, eax
je 0x18002bec0
movzx eax, byte [rsp + 0x51]
mov edx, edi
mov rcx, qword [0x180067620]
imul rcx, rax
mov rax, qword [0x180067620]
mov r8, qword [0x1800675d0]
sub rcx, rax
movzx eax, byte [0x1800675bf]
cmp rcx, 0x62a72475
sete dl
add r8d, eax
mov al, byte [rsp + 0x52]
not r8d
mov eax, dword [str.hZn0]
sub r8d, edx
add r8d, 0x86
mov dword [0x180067664], r8d
test eax, eax
je 0x18002be8c
xor edx, edx
mov cl, 0x18
call fcn.180031edc
movzx eax, al
mov edx, edi
mov dword [0x180067634], eax
mov ecx, edi
mov eax, dword [0x180067634]
cmp eax, 0xe
mov eax, dword [0x180067634]
setne dl
test eax, eax
setne cl
cmp ecx, edx
jbe 0x18002beb8
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 0x5e]
call fcn.180031098
mov byte [0x18006762a], al
test al, al
jle 0x18002be73
mov eax, 4
mov word [0x180067654], ax
mov eax, dword [0x18006760c]
movzx ecx, word [0x180067654]
sub eax, 0x4c82
mov dword [0x180067664], eax
test ecx, ecx
je 0x18002be4a
sub ecx, 1
je 0x18002be35
sub ecx, 1
je 0x18002be25
sub ecx, 1
je 0x18002be65
cmp ecx, 1
jne 0x18002beb8
mov rax, qword [rbp - 0x68]
mov word [0x180d3a3fe], ax
mov al, byte [0x180067638]
add al, al
mov byte [0x1800675f8], al
jmp 0x18002beb8
mov eax, dword [0x18006761c]
movzx eax, word [rsp + 0x58]
jmp 0x18002beb8
mov rax, qword [0x1800675d8]
and eax, 0x4779
mov qword [0x1800675d0], rax
jmp 0x18002beb8
movsxd rcx, dword [str.hZn0]
movabs rax, 0x24a24b7dbd07d
add rcx, rax
mov qword [0x180067658], rcx
mov al, byte [0x180bd5d30]
mov byte [0x18006756e], al
jmp 0x18002beb8
cmp dword [rbp - 0x28], edi
je 0x18002beb8
mov rax, qword [rbp - 0x80]
add al, 0x69
mov byte [rsp + 0x52], al
mov rax, qword [rbp - 0x70]
mov byte [rsp + 0x52], al
jmp 0x18002beb8
mov rax, qword [rbp - 0x58]
cmp rax, 0x429f
je 0x18002beaa
cmp word [0x180067638], di
je 0x18002beaa
mov byte [0x180067587], 0xe5
jmp 0x18002beb8
mov al, byte [0x180067586]
mov al, byte [rsp + 0x53]
mov al, byte [rsp + 0x53]
mov eax, dword [rbp]
jmp 0x18002eb93
mov eax, dword [rbp + 0x18]
mov ecx, eax
mov qword [rbp + 0x48], rax
call fcn.180028068
mov qword [rbp + 0x30], rax
test rax, rax
jne 0x18002c020
movzx edx, byte [rsp + 0x52]
xor ecx, ecx
call fcn.180031bbc
mov eax, eax
mov qword [0x180067610], rax
mov al, byte [0x1800675f9]
test al, al
jne 0x18002bf29
mov eax, dword [0x18006761c]
test eax, eax
jne 0x18002bf29
mov eax, dword [str.hZn0]
test eax, eax
je 0x18002bf29
mov eax, dword [0x180067660]
test eax, eax
je 0x18002bf2e
movzx eax, byte [rsp + 0x52]
sub al, byte [0x1800675f8]
mov byte [rsp + 0x52], al
jmp 0x18002bf2e
mov rax, qword [rsp + 0x78]
lea eax, [r13 + 0x75e8]
mov r14d, 0xa2
movsxd rsi, eax
jmp 0x18002bfa9
mov ecx, dword [0x180067674]
mov eax, 1
add ecx, r12d
cmp ecx, eax
jne 0x18002bfb9
movzx ecx, byte [0x180067587]
mov edx, edi
mov eax, dword [0x180067634]
cmp eax, ecx
mov eax, dword [0x180067634]
mov ecx, edi
setae dl
cmp eax, 0x29
setae cl
cmp edx, ecx
jb 0x18002bf9e
call qword [sym.imp.USER32.dll_GetFocus]
mov rbx, rax
test rax, rax
je 0x18002bfa9
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_BeginPaint]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x18002bfa9
mov qword [0x180067658], 0x6b17fc4f
cmp qword [0x1800675d8], rsi
mov qword [0x1800675d0], r14
je 0x18002bf40
mov eax, 1
mov word [0x180067584], ax
movzx eax, byte [0x1800675fa]
add ax, 0xc
mov word [0x18006763c], ax
movzx eax, word [0x180067584]
test eax, eax
je 0x18002c013
cmp eax, 1
jne 0x18002c017
mov rax, qword [0x180067610]
mov rax, qword [0x180067620]
movzx eax, word [0x180067670]
movzx eax, word [rsp + 0x58]
mov rax, qword [rsp + 0x78]
mov rax, qword [rbp - 0x68]
mov rax, qword [0x1800675e0]
jmp 0x18002c017
mov al, byte [rsp + 0x50]
mov eax, dword [rsp + 0x70]
jmp 0x18002eb93
cmp byte [0x1800675be], dil
je 0x18002c047
mov rax, qword [0x180067678]
test rax, rax
je 0x18002c03b
mov al, byte [rsp + 0x52]
jmp 0x18002c041
mov al, byte [0x180067658]
mov byte [0x1800675ff], al
mov dword [rbp - 0x60], edi
cmp dword [rbp + 0x18], edi
jbe 0x18002d4cf
cmp byte [0x18006762a], dil
je 0x18002c095
cmp dword [0x180067618], edi
mov ecx, edi
movsx eax, byte [0x18006756e]
sete cl
add ecx, eax
movsx eax, byte [rbp - 0x18]
add ecx, eax
mov eax, dword [rbp - 0x28]
cmp byte [0x1800675bf], dil
not ecx
mov dword [0x1800675cc], ecx
cmovne eax, r12d
mov qword [0x1800675d0], rax
jmp 0x18002c0da
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x18002c0ad
mov al, byte [rsp + 0x50]
test al, al
je 0x18002c0ad
mov ecx, 1
jmp 0x18002c0af
mov ecx, edi
movzx eax, byte [rsp + 0x52]
movabs rdx, 0x6734af5f1cd6d
cmp rax, rdx
sbb eax, eax
test ecx, eax
je 0x18002c0da
cmp word [rbp - 0x50], di
movzx eax, byte [0x180067583]
cmovne ax, bx
mov word [rbp - 0x48], ax
mov eax, 0x57
mov ecx, edi
mov word [0x18006756c], ax
mov r8d, edi
mov al, byte [0x1800675f9]
mov edx, edi
test al, al
mov eax, edi
sete cl
cmp byte [0x1800675f8], dil
sete al
sub eax, ecx
add eax, 0x9685642
add esi, eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x613
mov dword [0x180067664], 0x6b
mov dword [rbp - 8], eax
movabs rax, 0x773ab0dd3079b
mov qword [rbp - 0x70], rax
mov eax, dword [rsp + 0x5c]
add eax, 0x46b
mov dword [rsp + 0x70], eax
movsx ecx, byte [0x18006756f]
mov eax, dword [0x1800675f4]
inc ecx
imul eax, ecx
mov rcx, rdi
mov dword [0x1800675f4], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x711
mov dword [rbp - 0x34], eax
mov rax, qword [0x1800675e0]
test rax, rax
mov rax, qword [0x180067678]
sete cl
cmp rax, rcx
mov rcx, qword [0x1800675d0]
mov rax, qword [rbp - 0x58]
setg r8b
cmp rax, rcx
setg dl
add edx, r8d
je 0x18002c1da
movzx ecx, byte [rbp - 0x10]
movsx eax, byte [0x1800675f8]
add ecx, r15d
not eax
imul ecx, eax
test ecx, ecx
je 0x18002c1dd
movsxd rcx, dword [0x180067650]
mov eax, r15d
shr eax, 4
mov dword [rbp - 0x28], eax
mov rax, qword [rbp - 0x68]
add eax, 0xb1
add ecx, eax
mov dword [0x180067650], ecx
jmp 0x18002c1dd
add r14d, r13d
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x5aa
mov dword [rsp + 0x60], eax
mov ecx, dword [0x18006759c]
mov eax, dword [0x18006759c]
sub rcx, qword [0x1800675e8]
xor eax, ecx
mov ecx, r12d
mov dword [0x18006759c], eax
mov eax, esi
and eax, 0xe0bf
mov qword [0x180067640], rax
mov eax, dword [rsp + 0x5c]
add eax, 0x688
mov dword [rsp + 0x70], eax
mov eax, dword [0x180067664]
add eax, 0x5a
movsxd rbx, eax
mov eax, dword [rsp + 0x5c]
add eax, 0x45a
mov dword [rsp + 0x70], eax
movzx eax, byte [0x1800675fb]
mov dword [0x18006759c], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [0x1800675f4], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x531
mov dword [rbp - 0x38], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x52d
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x4fd
mov dword [rbp - 0x20], eax
mov edx, dword [rbp - 0x38]
mov eax, dword [rbp - 0x38]
add edx, eax
mov r8d, dword [rbp - 0x20]
mov ecx, dword [rbp - 0x20]
or r8d, edx
mov eax, dword [rbp - 0x38]
or ecx, eax
mov eax, dword [rbp - 0x38]
imul eax, ecx
cmp eax, r8d
je 0x18002d4be
cmp byte [0x1800675fb], dil
je 0x18002c406
call qword [sym.imp.USER32.dll_GetCursor]
test rax, rax
je 0x18002c2d4
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetCaretPos]
mov ebx, 1
movsx ecx, byte [0x1800675ff]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [rsp + 0x50], al
movabs rcx, 0x31a6260af4bbd
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
movzx edx, byte [0x180067586]
movzx eax, byte [0x1800675fb]
sub rax, rcx
mov qword [rbp - 0x40], rax
mov rax, qword [0x180067640]
inc rax
add rdx, rax
mov eax, r14d
xor rdx, rax
mov qword [0x180067678], rdx
mov eax, dword [rsp + 0x5c]
add eax, 0x5da
cmp byte [0x18006762a], dil
mov dword [rbp - 0x38], eax
jne 0x18002c361
cmp byte [0x18006756e], dil
je 0x18002c361
movzx eax, word [0x18006756c]
mov ecx, 0x2cdb
sub ax, cx
mov word [0x180067638], ax
mov eax, dword [rsp + 0x5c]
mov ecx, 0x5e41
add eax, 0x61f
mov dword [rsp + 0x70], eax
mov rax, qword [rbp - 0x58]
sub ax, cx
movzx ecx, word [0x18006756c]
mov word [0x180067670], ax
add cx, cx
mov eax, dword [0x180067634]
add ax, cx
mov word [0x18006756c], ax
mov eax, dword [rsp + 0x5c]
add eax, 0x422
mov dword [rbp - 4], eax
mov eax, dword [0x180067634]
test eax, eax
je 0x18002c4ff
mov al, byte [0x180067586]
test al, al
jne 0x18002c3c8
mov r8d, edi
cmp r15d, 0x27
ja 0x18002c3cb
mov r8d, ebx
mov rax, qword [0x1800675e0]
mov edx, edi
not r14d
mov ecx, r14d
cmp rcx, rax
movzx eax, byte [rsp + 0x52]
mov ecx, edi
setg dl
cmp eax, edx
setbe cl
cmp r8d, ecx
je 0x18002c4ef
mov eax, 4
mov qword [0x180067640], rax
jmp 0x18002c517
mov eax, dword [str.hZn0]
mov edx, edi
test eax, eax
mov ecx, edi
mov eax, dword [rsp + 0x64]
sete dl
test eax, eax
sete cl
cmp ecx, edx
jne 0x18002c444
movzx eax, byte [rsp + 0x51]
imul ecx, eax, 0x5006
mov eax, 2
mov qword [0x180067648], rax
add dword [0x180067664], ecx
jmp 0x18002c2d4
movzx ecx, word [rsp + 0x58]
mov rax, qword [0x180067610]
cmp rcx, rax
ja 0x18002c4d4
mov al, byte [rsp + 0x50]
test al, al
jne 0x18002c4d4
mov rax, qword [0x180067678]
not rax
test rax, rax
jne 0x18002c4d4
cmp byte [0x1800675f8], dil
mov rcx, rdi
mov rax, qword [rbp - 0x80]
mov rdx, rdi
sete cl
cmp rcx, rax
movsx rcx, byte [0x18006756f]
mov rax, qword [0x1800675e0]
seta dl
xor rax, rcx
cmp rdx, rax
jg 0x18002c2d4
mov qword [rbp - 0x70], 0x3a
mov ebx, 1
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18002c4c3
mov byte [0x180067583], r14b
jmp 0x18002c2d9
mov al, byte [0x1800675f9]
mov byte [0x180067583], al
jmp 0x18002c2d9
movzx eax, word [0x180067584]
mov ebx, 1
add ax, bx
mov word [0x180067584], ax
jmp 0x18002c2d9
movzx eax, word [0x180bd5d30]
mov word [0x180067638], ax
jmp 0x18002c517
movzx eax, word [0x18006763c]
add ax, ax
add ax, word [0x180067628]
mov word [0x18006763c], ax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
movzx eax, word [rsp + 0x54]
test ax, ax
je 0x18002c53c
mov rax, qword [rsp + 0x78]
mov dword [0x180067618], 0xf896
jmp 0x18002c550
movsx eax, byte [0x1800675be]
mov ecx, 0xd3e7
sub ecx, eax
add dword [0x1800675f4], ecx
mov eax, dword [rsp + 0x5c]
mov r14d, r13d
mov r15, qword [rbp - 0x18]
add eax, 0xf382
cmp dword [0x180067618], edi
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x5c]
cmovne r14d, dword [rbp - 0x80]
add eax, 0x6e6c
mov dword [rbp - 0x20], eax
movzx ecx, word [rsp + 0x58]
movsx eax, r15b
cmp ecx, eax
jg 0x18002c5f1
mov edx, 0xa9
lea ecx, [rdx + 0x35]
call fcn.180031bbc
cmp eax, 0x33
mov r12d, eax
mov ecx, edi
mov eax, edi
sete cl
test r12d, r12d
sete al
cmp eax, ecx
jae 0x18002c5d4
movzx eax, byte [0x180067583]
cmp eax, r12d
ja 0x18002c5c2
movzx eax, word [rsp + 0x58]
sub ax, bx
jmp 0x18002c5ea
mov rax, qword [rsp + 0x78]
and eax, 0x6d1cb6a8
mov dword [0x1800675f0], eax
jmp 0x18002c61f
mov eax, dword [rsp + 0x64]
mov dword [0x180df5b28], eax
mov eax, 0xf86f
xor ax, word [0x180067648]
mov word [rsp + 0x58], ax
jmp 0x18002c61f
mov eax, dword [0x180067634]
test eax, eax
je 0x18002c619
movsx ecx, word [0x180067670]
movzx eax, word [0x180bd5d30]
add ecx, 0xbccc
mov dword [rsp + 0x64], ecx
mov qword [rbp - 0x50], rax
jmp 0x18002c61f
mov al, byte [0x1800675fe]
mov eax, dword [rsp + 0x5c]
xor r9d, r9d
mov esi, dword [0x180bd5d30]
add eax, 0xc0ef
mov dword [rsp + 0x70], eax
xor r8d, r8d
movsx eax, byte [0x180067628]
imul ecx, eax, 0x4d
mov byte [0x18006756f], cl
mov ecx, 0x6f4d60
mov eax, dword [rbp - 0x20]
imul edx, eax, 0x82
mov eax, dword [rbp - 0x20]
shl eax, 7
sub ecx, eax
sub ecx, edx
mov rdx, qword [0x180067668]
mov dword [rbp + 0x14], ecx
lea ecx, [r9 + 0x1a]
call fcn.180031a60
mov byte [rsp + 0x52], al
mov al, byte [rsp + 0x52]
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
movsx eax, word [0x180067670]
imul r14d, eax
movzx eax, word [rsp + 0x58]
add eax, 0x6488c00
mov dword [0x180067634], eax
mov eax, dword [rsp + 0x5c]
add eax, 0xdd56
mov dword [rsp + 0x70], eax
call qword [sym.imp.USER32.dll_GetShellWindow]
movsx rbx, word [rbp - 0x48]
mov ecx, eax
mov qword [0x1800675d0], rcx
mov eax, dword [rsp + 0x5c]
add eax, 0x4a6
mov dword [rbp - 0x1c], eax
mov rcx, qword [0x180067620]
mov rax, qword [rbp - 0x80]
sub rcx, rax
mov rax, qword [0x180067620]
add rax, rcx
mov qword [0x180067620], rax
mov rax, rbx
xor rax, 0xf0af
mov qword [rbp - 0x68], rax
mov eax, dword [rsp + 0x5c]
add eax, 0x3d3
mov dword [rbp - 0x1c], eax
call qword [sym.imp.USER32.dll_AnyPopup]
mov byte [0x180067586], al
mov rcx, rdi
mov al, byte [0x180067586]
mov rdx, qword [0x180067620]
test al, al
mov r8, qword [0x1800675e0]
movzx eax, word [0x18006763c]
sete cl
add rdx, rcx
xor r8, rax
imul r8, rdx
movsx rdx, r15b
mov eax, 0xb9
mov ecx, 0xffffbce2
movsx ecx, cx
imul edx, ecx
not dx
sub dx, word [0x1800675fc]
add dx, r8w
add dx, ax
mov word [0x180067670], dx
movzx ecx, word [rsp + 0x54]
mov r15d, dword [0x1800675cc]
xor ecx, r12d
sub ecx, dword [0x180067608]
add r15d, 0x2d
mov eax, dword [rsp + 0x70]
add r15d, ecx
xor eax, 0xd8b6
mov dword [rbp], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x413
mov dword [rsp + 0x70], eax
mov eax, dword [0x180067634]
imul ecx, eax, 0xffff96d1
mov eax, dword [rsp + 0x5c]
add eax, 0xbe92
add dword [0x1800675cc], ecx
mov dword [rsp + 0x70], eax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov byte [rbp - 0x10], al
mov rax, qword [0x180067600]
mov r8, qword [rbp - 0x80]
mov rdx, qword [0x180067648]
or r8, 0x4f4a2c92
imul rax, rbx
not r8
not rdx
and r8, rax
movzx eax, word [0x180067628]
add rdx, rax
mov eax, dword [0x180067650]
not eax
movsxd rcx, eax
mov rax, qword [rbp - 0x68]
imul rcx, rdx
imul rax, rcx
add rax, r8
mov qword [0x1800675d8], rax
mov eax, dword [rsp + 0x5c]
add eax, 0xc514
mov dword [rsp + 0x5c], eax
movzx ecx, byte [rsp + 0x52]
mov eax, dword [0x18006761c]
cmp eax, ecx
je 0x18002c858
mov rax, qword [rbp - 0x28]
add eax, 0xe88a
mov byte [0x1800675ff], 0xe4
movsxd rcx, eax
mov qword [rsp + 0x78], rcx
jmp 0x18002c888
movzx eax, word [rsp + 0x58]
mov ecx, edi
cmp byte [0x1800675bf], dil
mov edx, 1
setne cl
test ax, ax
mov eax, dword [0x1800675f0]
cmove ecx, edx
or eax, r14d
cmp eax, ecx
jb 0x18002c888
add word [0x180067628], dx
movsx edx, word [rbp - 0x48]
xor r8d, r8d
mov ecx, 0xcf
call fcn.180031098
cmp al, 0x48
mov dl, al
mov ecx, edi
mov qword [rbp - 0x18], rdx
setne cl
mov eax, edi
test dl, dl
setne al
cmp eax, ecx
jb 0x18002c8cd
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rbx, qword [rbp - 0x40]
mov ecx, eax
mov qword [0x180067610], rcx
mov rax, qword [0x180067610]
jmp 0x18002c8ed
cmp dword [0x180067664], edi
movzx eax, r13b
movzx ecx, r14b
cmovne ecx, eax
mov byte [0x1800675f9], cl
movzx eax, word [rsp + 0x54]
lea rbx, [rax + rax]
mov edx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x5c]
add edx, eax
mov eax, dword [rsp + 0x5c]
xor eax, edx
xor eax, 0x39
sub eax, 0x14998
mov dword [rbp + 8], eax
mov eax, dword [0x180bd5d30]
mov qword [rbp - 0x80], 0x8af5
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18002c928
mov al, byte [rsp + 0x51]
mov eax, dword [0x180067634]
mov al, byte [rsp + 0x51]
mov rax, qword [rsp + 0x78]
dec rax
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x5c]
add eax, 0xa06a
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x409
mov dword [rbp - 0x20], eax
mov rax, qword [0x180067620]
cmp rax, qword [0x1800675d8]
ja 0x18002c9c5
movsx eax, byte [0x1800675f8]
cmp eax, dword [0x180067664]
jg 0x18002c982
movzx r15d, byte [rsp + 0x52]
neg r15d
jmp 0x18002c9f4
mov eax, dword [0x18006761c]
test eax, eax
je 0x18002c9a4
movzx ecx, byte [0x180067587]
mov rax, qword [0x180067678]
sub cx, ax
mov word [rsp + 0x54], cx
jmp 0x18002c9f4
cmp word [rbp - 0x50], di
je 0x18002c9f4
mov eax, dword [0x180067630]
sub eax, 0xfd
mov dword [rbp - 0x28], eax
movzx eax, word [0x180bd5d30]
mov qword [rbp - 0x50], rax
jmp 0x18002c9f4
mov eax, dword [0x180067650]
mov edx, ebx
movsx ecx, byte [0x18006762a]
test eax, eax
cmovne edx, ecx
mov rcx, qword [0x180067648]
sub rcx, qword [0x180067658]
xor qword [0x180067648], rcx
mov dword [0x180067650], edx
mov eax, dword [rsp + 0x5c]
mov ecx, dword [0x1800675f4]
add eax, 0x4b5
mov dword [rsp + 0x70], eax
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov eax, eax
mov edx, edi
mov qword [rsp + 0x78], rax
mov ecx, edi
mov rax, qword [rsp + 0x78]
cmp rax, 0x60
mov rax, qword [rsp + 0x78]
sete dl
test rax, rax
sete cl
cmp ecx, edx
jae 0x18002ca96
movsx ecx, byte [0x18006756f]
movsx eax, byte [0x1800675ff]
not ecx
cmp eax, ecx
je 0x18002ca66
movzx eax, word [0x180067654]
movzx ecx, word [0x180067584]
neg eax
add rcx, rcx
mov dword [rbp - 0x28], eax
mov qword [rbp - 0x68], rcx
jmp 0x18002cb2b
movsx rax, byte [0x18006756e]
mov rcx, qword [0x1800675d0]
imul rcx, rax
mov rax, qword [0x1800675d0]
add rax, rcx
sub bl, 0x5d
mov qword [0x1800675d0], rax
mov byte [rsp + 0x52], bl
jmp 0x18002cb2b
mov rax, qword [0x1800675d0]
mov ecx, edi
test rax, rax
mov rdx, rdi
mov eax, dword [0x18006760c]
sete cl
cmp eax, ecx
mov rcx, qword [0x1800675e0]
mov rax, qword [rsp + 0x78]
not rcx
setne dl
sub rcx, rax
not rcx
cmp rcx, rdx
jne 0x18002cadf
movsx eax, byte [rbp - 0x18]
mov ecx, 0x674e
sub ax, cx
add word [rbp - 0x48], ax
jmp 0x18002cb2b
movzx eax, word [rsp + 0x54]
test ax, ax
jne 0x18002cb0f
mov al, byte [0x18006762a]
xor al, byte [0x1800675fb]
not al
sub al, byte [rbp - 0x48]
add al, byte [0x18006756c]
sub r13d, dword [0x180c101a8]
mov byte [0x1800675bf], al
jmp 0x18002cb2b
mov rax, qword [0x180067648]
xor rax, 0x31
mov qword [rbp - 0x70], rax
mov rax, qword [0x180067678]
mov dword [0x18006760c], eax
movzx r14d, word [rsp + 0x54]
movzx ecx, word [0x180067584]
sub r14d, 0x29a7f8c6
mov eax, dword [0x1800675f0]
add eax, 0x4c
add ecx, eax
mov dword [0x1800675f0], ecx
mov edx, dword [rbp - 0x34]
mov eax, dword [rbp - 0x34]
add edx, eax
mov r8d, dword [rbp - 8]
mov eax, dword [rbp - 8]
sub r8d, eax
mov ecx, dword [rbp - 0x20]
mov eax, dword [rbp - 0x20]
sub ecx, eax
mov rax, qword [0x1800675e0]
xor ecx, 0x1ad
imul r8d, edx
sub ecx, r8d
cmp dword [0x180067608], edi
mov dword [rbp + 0x10], ecx
jne 0x18002cb91
movsx rax, word [0x180067670]
mov qword [0x180067648], rax
xor r9d, r9d
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
movzx eax, word [0x180067584]
movzx edx, byte [0x1800675bf]
lea r8d, [r9 + 0xe]
sub edx, eax
movzx eax, word [0x180067584]
add ax, dx
mov word [0x180067584], ax
mov eax, dword [0x180bd5d30]
mov qword [rbp - 0x68], rax
mov eax, dword [rsp + 0x5c]
add eax, 0x96cc
mov dword [rbp - 0x1c], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x3d6
mov dword [rsp + 0x70], eax
mov edx, dword [0x180067634]
movsx rcx, byte [rsp + 0x53]
call fcn.180031a60
mov rbx, rax
test rax, rax
je 0x18002cc3e
movzx ecx, word [rsp + 0x54]
mov edx, edi
movsx eax, word [rbp - 0x48]
cmp ecx, eax
movzx eax, word [rsp + 0x54]
mov ecx, edi
setl dl
cmp ax, 5
setb cl
cmp edx, ecx
ja 0x18002cc32
movzx eax, byte [rbp - 0x10]
sub word [rbp - 0x50], ax
jmp 0x18002cc58
mov eax, dword [0x180067660]
mov qword [rbp - 0x58], rax
jmp 0x18002cc58
mov eax, dword [0x180067630]
movzx ecx, ax
movzx eax, word [0x1800675fc]
imul eax, ecx
mov word [0x1800675fc], ax
mov eax, dword [rsp + 0x5c]
add eax, 0x497
mov dword [rsp + 0x70], eax
test r15d, r15d
je 0x18002cc6e
mov rax, qword [rbp - 0x80]
test r12d, r12d
jne 0x18002cc87
mov rcx, qword [rbp - 0x28]
movzx eax, byte [rsp + 0x52]
add ecx, 0x44
add ecx, eax
mov qword [rbp - 0x28], rcx
jmp 0x18002cc9e
mov eax, dword [0x18006761c]
test eax, eax
je 0x18002cc9e
movsx esi, byte [0x18006756e]
add esi, 0x5266a0b9
mov rcx, qword [0x180067620]
lea rdx, [rbp + 0x20d0]
mov eax, dword [0x1800675cc]
mov r9d, 0x104
mov qword [rsp + 0x40], rdi
add eax, eax
add ecx, eax
mov qword [rsp + 0x38], rdi
mov dword [0x1800675cc], ecx
xor r8d, r8d
mov ecx, dword [rsp + 0x70]
mov eax, dword [rbp - 0x1c]
or ecx, eax
sub ecx, 0x945e
mov qword [rsp + 0x30], rdi
mov dword [rbp - 0x1c], ecx
lea rcx, [fcn.180040a60]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov eax, dword [rbp - 0x60]
lea r8, [rbp + 0x20d0]
mov rcx, qword [rbp + 0x20]
mov r9d, 0x104
mov rdx, qword [rcx + rax*8]
mov rcx, qword [rbp + 0x38]
call fcn.18001f7b4
test eax, eax
je 0x18002cf08
mov eax, 3
mov qword [0x1800675e0], rax
mov ecx, dword [0x18006759c]
movzx eax, word [0x18006763c]
not ecx
sub ecx, eax
mov eax, ecx
mov qword [0x180067610], rax
mov rax, qword [rsp + 0x78]
add al, 0x80
mov byte [0x180067586], al
mov rax, qword [0x1800675e0]
test rax, rax
je 0x18002ce11
sub rax, 1
je 0x18002ce01
sub rax, 1
je 0x18002cdac
cmp rax, 1
jne 0x18002ce1b
mov eax, dword [0x180067650]
mov ecx, dword [0x180067630]
sub eax, 0xa5
cdqe
mov qword [0x180067668], rax
mov eax, dword [0x18006759c]
and ecx, eax
mov dword [0x18006759c], ecx
jmp 0x18002ce1b
mov rax, qword [0x180067600]
mov ecx, edi
test rax, rax
mov edx, edi
movzx eax, word [rsp + 0x58]
sete cl
cmp ecx, eax
movzx ecx, byte [rbp - 0x10]
mov rax, rdi
sete dl
inc ecx
sub edx, dword [0x180067674]
add ecx, edx
cmp word [0x1800675fc], di
sete al
sub rcx, rax
mov rax, qword [0x1800675d0]
add rax, 0xb87
add rcx, rax
mov qword [0x180067648], rcx
dec r14d
jmp 0x18002ce1b
movzx eax, word [0x1800675d8]
mov word [0x18006756c], ax
jmp 0x18002ce1b
mov dword [0x180067630], 8
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18002ce3f
mov rax, qword [rbp - 0x70]
add rax, 0x443b
mov qword [0x1800675e0], rax
mov ecx, dword [rbp + 0x14]
xor edx, edx
mov eax, dword [rsp + 0x5c]
add ecx, eax
mov dword [rbp + 0x14], ecx
mov ecx, 0xb9
call fcn.1800316ec
mov r8, qword [rbp - 0x50]
movzx ecx, ax
not cx
mov word [0x180067638], ax
movzx edx, cx
mov ecx, edi
shr edx, 0xf
cmp ax, 0x62
setge cl
cmp edx, ecx
jb 0x18002cea0
mov eax, dword [0x18006760c]
test r8w, r8w
mov ecx, edi
sete cl
cmp eax, ecx
movsx ecx, r8w
mov eax, edi
cmove eax, ecx
imul eax, dword [0x1800675cc]
mov dword [rsp + 0x64], eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp]
add ecx, eax
mov dword [rsp + 0x70], ecx
mov ecx, dword [0x1800675f4]
inc ecx
mov qword [rbp - 0x68], rcx
mov eax, dword [0x180067634]
dec eax
mov dword [0x180067634], eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 8]
add ecx, eax
mov dword [rbp], ecx
mov edx, dword [rsp + 0x70]
mov eax, dword [rbp - 0x1c]
mov ecx, dword [rbp + 0x10]
imul edx, eax
mov eax, dword [rbp + 0x14]
imul ecx, edx
cmp ecx, eax
je 0x18002cf08
movsx edx, byte [rsp + 0x53]
movzx eax, byte [rbp - 0x10]
add edx, eax
movsx ecx, r8w
sub ecx, ebx
mov eax, edi
test edx, edx
cmove eax, ecx
mov dword [0x180067608], eax
mov eax, dword [rbp - 0x60]
mov r9d, 0x400
mov rcx, qword [rbp + 0x30]
mov edx, eax
mov r8, qword [rcx + rax*8]
mov rax, qword [rbp + 0x58]
add r8, 0x110
mov rcx, qword [rbp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x20]
mov rdx, qword [rax + rdx*8]
call fcn.18001bf10
mov edx, dword [rbp - 0x78]
mov r8d, 0xc0
mov ecx, dword [rbp + 0x28]
imul edx, ecx
mov dword [rbp], eax
sub r8d, edx
mov edx, dword [rbp - 0x78]
mov ecx, dword [rbp - 0x30]
or edx, ecx
cmp edx, r8d
je 0x18002d43f
mov rax, qword [0x180067610]
mov cl, byte [0x1800675bf]
add cl, 0x5b
mov byte [0x1800675fb], cl
mov ecx, r12d
mov byte [rsp + 0x52], al
movsx eax, word [0x180067638]
sub ecx, eax
mov eax, ecx
mov qword [rbp - 0x80], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x45a
mov dword [rsp + 0x70], eax
mov rax, qword [rbp - 0x28]
cmp eax, dword [0x180067618]
ja 0x18002d027
lea rcx, [0x18004b7c0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov word [0x180067638], ax
test ax, ax
je 0x18002cfe3
movzx eax, byte [0x1800675fb]
sub qword [0x180067668], rax
jmp 0x18002d02f
cmp word [rbp - 0x48], di
je 0x18002cffc
movzx eax, byte [rsp + 0x50]
sub al, byte [0x180067628]
add al, 0x3a
mov byte [rsp + 0x50], al
jmp 0x18002d02f
cmp qword [0x180067658], rdi
je 0x18002d02f
mov eax, dword [0x180bd5d30]
mov ecx, 0x21fa
mov qword [0x180067610], rax
mov rax, qword [0x180067620]
add ax, cx
mov word [rbp - 0x50], ax
jmp 0x18002d02f
lea eax, [r14 - 0x13]
mov byte [rsp + 0x53], al
mov eax, dword [rsp + 0x5c]
lea rcx, [rbp + 0x20a8]
add eax, 0xd339
mov dword [rbp - 0x1c], eax
mov eax, dword [rsp + 0x5c]
movups xmm0, xmmword [str.CorrelationID]
add eax, 0x3fb
movsd xmm1, qword [0x18004ba30]
mov dword [rsp + 0x70], eax
mov eax, dword [0x18004ba38]
mov dword [rbp + 0x20c0], eax
movups xmmword [rbp + 0x20a8], xmm0
movsd qword [rbp + 0x20b8], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov edx, edi
mov qword [rbp - 0x68], rcx
movsx ecx, byte [rbp - 0x18]
mov eax, dword [rsp + 0x64]
cmp eax, ecx
mov eax, dword [rsp + 0x64]
setne dl
mov dword [rbp + 0x14], ecx
cmp eax, 0x25
mov ecx, edi
setne cl
cmp edx, ecx
ja 0x18002d0e8
mov ecx, dword [rsp + 0x64]
mov rax, qword [0x180067600]
cmp rcx, rax
jl 0x18002d0d0
mov eax, dword [0x180bd5d30]
mov qword [rbp - 0x70], rax
mov al, byte [rsp + 0x50]
add al, 0x26
mov byte [0x180067587], al
jmp 0x18002d10a
mov rax, qword [rbp - 0x68]
shl rax, 8
mov qword [rbp - 0x80], rax
mov dword [0x18006760c], 0x582d82c
jmp 0x18002d10a
movzx ecx, word [0x18006763c]
movsx eax, byte [0x1800675f8]
cmp ecx, eax
jge 0x18002d10a
mov al, byte [0x180067586]
add r15d, dword [rbp - 0x28]
sub al, 0x1f
mov byte [rsp + 0x52], al
mov eax, dword [rsp + 0x70]
xor edx, edx
mov ecx, dword [rbp - 0x1c]
sub ecx, eax
xor ecx, 0xc818
mov dword [rbp + 8], ecx
lea ecx, [rdx + 0x7f]
call fcn.180031bbc
mov word [rsp + 0x58], ax
movzx eax, word [rsp + 0x58]
test ax, ax
je 0x18002d156
movabs rax, 0xf44b91d4b9e30
mov qword [rbp - 0x80], rax
movzx eax, word [0x180067654]
imul eax, r12d
mov dword [0x180067660], eax
jmp 0x18002d1b4
mov ecx, dword [0x1800675f0]
movsx eax, byte [0x1800675f8]
add ecx, eax
je 0x18002d170
mov rax, qword [rbp - 0x70]
sub r12d, eax
jmp 0x18002d1b4
mov rax, qword [0x180067678]
not rax
test rax, rax
je 0x18002d18d
mov eax, dword [rbp + 0x14]
shl eax, 4
mov dword [0x1800675f4], eax
jmp 0x18002d1b4
test r12d, r12d
je 0x18002d1b4
mov al, byte [0x18006756e]
mov ecx, dword [0x1800675e8]
add al, al
add ecx, 0xfffffec6
add al, cl
mov dword [0x180067618], ecx
mov byte [0x18006756e], al
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
je 0x18002d1d2
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowDC]
mov cl, byte [0x1800675f8]
mov eax, 0x37
cmp cl, al
mov edx, edi
mov eax, edi
sete dl
test cl, cl
sete al
cmp eax, edx
jae 0x18002d1fd
call qword [sym.imp.USER32.dll_GetDialogBaseUnits]
mov dword [0x18006760c], eax
jmp 0x18002d214
cmp word [rbp - 0x50], di
je 0x18002d214
movabs rax, 0x45a4560535f76
mov qword [0x1800675d0], rax
mov eax, dword [rsp + 0x5c]
add eax, 0x484c
mov dword [rsp + 0x70], eax
mov eax, 2
mov word [0x18006756c], ax
mov eax, dword [rsp + 0x5c]
add eax, 0x9f7b
mov dword [rbp - 0x1c], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r9b, al
mov eax, dword [rsp + 0x5c]
add eax, 0x9491
mov qword [rbp - 0x10], r9
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18002d288
movzx ecx, byte [rsp + 0x51]
mov eax, 0xaff3
and cx, ax
movzx r13d, r9b
movzx eax, word [0x180067584]
add r13d, 0x609b6ee3
sub ax, cx
mov word [0x180067584], ax
jmp 0x18002d292
mov rax, qword [rsp + 0x78]
and al, 7
mov byte [rbp - 0x10], al
mov edx, dword [rbp - 4]
mov eax, dword [rbp - 0x38]
add edx, eax
mov r8d, dword [rbp - 0x38]
mov eax, dword [rbp - 0x38]
xor r8d, eax
mov eax, dword [rsp + 0x70]
imul ecx, eax, 0x4370
mov eax, dword [rbp - 0x1c]
add eax, 0xd447
imul r8d, edx
xor eax, ecx
add eax, 0xd8dc8574
add eax, r8d
mov dword [rsp + 0x70], eax
cmp dword [rbp], edi
je 0x18002d43f
xor edx, edx
xor ecx, ecx
call fcn.180031bbc
mov eax, eax
mov qword [0x180067678], rax
mov rax, qword [0x180067678]
test rax, rax
jne 0x18002d31e
movzx eax, word [rsp + 0x58]
test ax, ax
je 0x18002d31e
movzx eax, byte [rsp + 0x52]
mov ecx, 0x2b58
add ax, cx
mov ecx, 0x6b0f
mov word [0x18006763c], ax
movzx eax, byte [rsp + 0x52]
add ax, cx
mov word [rbp - 0x50], ax
movsx ecx, byte [rsp + 0x53]
mov rax, qword [rbp - 0x48]
and cx, ax
add ax, cx
mov qword [rbp - 0x48], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x5c], eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rbp + 8]
add ecx, eax
mov dword [rbp - 0x38], ecx
mov eax, 0x980e
mov word [rsp + 0x58], ax
movzx eax, byte [rsp + 0x51]
mov qword [0x180067610], rax
mov eax, dword [rsp + 0x5c]
movsxd rcx, dword [0x1800675cc]
add eax, 0x447
mov dword [rbp - 0x1c], eax
call qword [sym.imp.USER32.dll_GetTopWindow]
mov ecx, eax
mov qword [0x1800675d0], rcx
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x70]
add ecx, eax
mov dword [rsp + 0x70], ecx
lea ecx, [r12 + 0x4e36]
mov rax, qword [0x180067620]
mov byte [0x1800675f8], 0xb9
mov qword [rbp - 0x40], rcx
cmp rax, rcx
jne 0x18002d40e
mov edi, 1
movzx eax, word [0x1800675fc]
add eax, r12d
cmp eax, edi
jne 0x18002d40c
movzx eax, word [0x18004ba50]
lea rcx, [rbp + 0x2078]
movups xmm0, xmmword [str.An_internal_error]
mov word [rbp + 0x2088], ax
mov al, byte [0x18004ba52]
mov byte [rbp + 0x208a], al
movups xmmword [rbp + 0x2078], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov word [rbp - 0x48], ax
mov rax, qword [0x180067620]
mov byte [0x1800675f8], 0xb9
cmp rax, qword [rbp - 0x40]
je 0x18002d3b1
xor edi, edi
mov ecx, dword [rbp - 0x38]
mov eax, dword [rbp - 0x38]
imul ecx, eax
mov eax, dword [rbp - 0x38]
cmp eax, ecx
je 0x18002d43f
mov al, byte [rbp - 0x10]
xor al, 0xf1
mov byte [0x1800675f8], al
lea eax, [r13 + 0x32]
mov byte [0x180067587], al
mov eax, 0xcf
mov word [0x18006763c], ax
mov r8, qword [rbp + 0x30]
mov r9d, 0x103
mov eax, dword [rbp - 0x60]
mov edx, eax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov rcx, qword [r8 + rax*8]
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov rax, qword [rax + rdx*8]
mov qword [rcx], rax
mov rcx, qword [r8 + rdx*8]
mov eax, dword [rbp + 0x40]
mov dword [rcx + 0x10c], eax
lea rcx, [0x180041d60]
mov rdx, qword [r8 + rdx*8]
lea r8, [rbp + 0x20d0]
add rdx, 8
call fcn.18001abb0
mov edx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x60]
sub edx, eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x60]
sub ecx, eax
mov eax, dword [rbp + 0x40]
imul ecx, edx
sub eax, ecx
add dword [rsp + 0x68], eax
mov eax, dword [rbp - 0x60]
inc eax
mov dword [rbp - 0x60], eax
cmp eax, dword [rbp + 0x18]
jb 0x18002c053
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor r9d, r9d
mov qword [rsp + 0x40], rdi
xor r8d, r8d
mov qword [rsp + 0x38], rdi
xor edx, edx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
mov r9, qword [rbp + 0x20]
mov rdx, rax
mov rcx, qword [sym.imp.KERNEL32.dll_HeapFree]
xor r8d, r8d
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18001abb0
cmp dword [rsp + 0x68], edi
jbe 0x18002eb91
mov eax, dword [0x180067634]
movsx ebx, byte [0x18006756e]
not eax
mov edx, dword [0x1800675f4]
add ebx, r12d
imul eax, ebx
add rdx, rax
mov rax, qword [0x180067600]
mov ecx, dword [0x180067660]
sub rdx, rax
mov eax, r14d
xor rcx, rax
imul rcx, rdx
mov qword [0x1800675e8], rcx
mov ecx, dword [rsp + 0x64]
call qword [sym.imp.USER32.dll_IsZoomed]
mov r11, qword [rbp - 0x18]
mov r12d, 1
mov eax, eax
mov qword [rbp - 0x80], rax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x68]
add eax, 0x727
mov dword [rbp - 0x30], eax
mov eax, dword [rsp + 0x68]
add eax, 0x44a
mov dword [rbp - 0x78], eax
mov dword [str.hZn0], r12d
mov ecx, dword [str.hZn0]
test ecx, ecx
je 0x18002d5d7
cmp ecx, r12d
jne 0x18002d5fc
movsx eax, word [0x18006763c]
imul r10d, eax, 0x39
mov qword [rbp - 0x50], r10
jmp 0x18002d600
mov eax, dword [0x180067634]
mov ecx, 0xa3
sub ecx, eax
movsx eax, r11b
xor eax, dword [0x1800675cc]
add r15d, ecx
xor eax, 0x9f02
mov dword [0x1800675cc], eax
mov r10, qword [rbp - 0x50]
mov eax, dword [rsp + 0x68]
add eax, 0x49f
mov dword [rsp + 0x68], eax
mov ecx, dword [rsp + 0x68]
mov edx, dword [rsp + 0x68]
add ecx, 0xfffffcc7
mov r8d, dword [rbp - 0x78]
add edx, ecx
mov ecx, dword [rsp + 0x68]
add r8d, edx
mov eax, dword [rbp - 0x78]
xor ecx, 0x37c
imul eax, ecx
cmp r8d, eax
je 0x18002eb91
mov r8d, 4
lea r9d, [r15 - 0x4c08]
mov qword [rbp - 0x58], r8
mov rax, qword [rbp - 0x58]
dec rax
mov qword [rbp - 0x40], r9
sub rax, r12
je 0x18002d6b9
mov r11, qword [rbp - 0x48]
sub rax, r12
je 0x18002d694
cmp rax, r12
jne 0x18002d6cb
mov eax, dword [0x18006759c]
lea r8d, [rbx - 0x2bc58cca]
mov ecx, edi
imul eax, r14d
mov qword [rbp - 0x28], r8
mov r8d, 4
test eax, eax
sete cl
mov dword [rsp + 0x64], ecx
jmp 0x18002d6cb
movzx eax, byte [0x1800675fa]
shl eax, 6
mov dword [0x18006760c], eax
mov ecx, dword [0x180067630]
movzx eax, byte [0x180067583]
add eax, ecx
mov qword [rbp - 0x58], rax
jmp 0x18002d6cb
movzx eax, word [0x180067584]
sub r11b, al
mov qword [rbp - 0x18], r11
mov r11, qword [rbp - 0x48]
mov al, byte [0x180067586]
test al, al
je 0x18002d6ed
movzx eax, word [0x180e8e464]
mov rcx, qword [0x1800675e0]
sub rcx, rax
mov qword [0x1800675e0], rcx
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x68], eax
movsx rcx, byte [0x1800675f9]
mov rax, qword [0x180067620]
cmp rax, rcx
jbe 0x18002d74f
mov eax, dword [rsp + 0x64]
cmp eax, r14d
jbe 0x18002d72a
mov al, byte [0x180067587]
mov cl, byte [0x180067587]
add cl, al
mov byte [0x180067587], cl
jmp 0x18002d75e
test ebx, ebx
je 0x18002d75e
movzx ecx, byte [rsp + 0x51]
movzx edx, byte [0x1800675bf]
movsx eax, r10w
imul eax, edx
imul eax, ecx
cdqe
mov qword [0x180067668], rax
jmp 0x18002d75e
test r9, r9
je 0x18002d75e
mov r11d, 0xcb
mov qword [rbp - 0x48], r11
mov eax, dword [rsp + 0x68]
movzx ecx, byte [0x1800675bf]
add eax, 0x73e
mov dword [rbp - 0x1c], eax
movzx eax, r11b
imul ecx, eax
mov eax, dword [rsp + 0x68]
add eax, 0x5b5
cmp dword [0x180067664], esi
mov byte [0x1800675bf], cl
mov dword [rsp + 0x70], eax
jne 0x18002d83c
mov al, byte [0x18006756f]
mov edx, edi
cmp byte [0x1800675f8], al
mov eax, edi
setne dl
cmp byte [0x1800675f8], 0x4c
setne al
cmp edx, eax
jne 0x18002d7d1
mov al, byte [0x1800675ff]
and al, 0xe5
mov byte [rsp + 0x51], 0x35
movzx eax, al
mov qword [rbp - 0x50], rax
jmp 0x18002d860
mov rax, qword [0x180067610]
test esi, esi
mov rcx, rdi
sete cl
cmp rax, rcx
jne 0x18002d801
mov rax, qword [0x180067600]
mov dword [rbp - 0x28], eax
movzx eax, word [rsp + 0x54]
not eax
cdqe
mov qword [0x1800675d0], rax
jmp 0x18002d860
mov eax, dword [rsp + 0x64]
mov rdx, qword [rbp - 0x10]
test eax, eax
je 0x18002d829
mov ecx, dword [0x1800675f0]
mov eax, dword [0x1800675f0]
add eax, ecx
add eax, dword [0x180067668]
mov dword [0x1800675f0], eax
jmp 0x18002d864
cmp dl, 0xcc
jb 0x18002d864
mov eax, 0xcdb46603
mov qword [0x180067668], rax
jmp 0x18002d864
movzx edx, byte [rsp + 0x51]
movzx ecx, byte [0x180067658]
movzx eax, byte [rsp + 0x51]
imul edx, ecx
sub al, byte [0x180dc687e]
mov byte [0x180067583], dl
mov byte [rsp + 0x51], al
mov rdx, qword [rbp - 0x10]
mov eax, dword [rsp + 0x68]
add eax, 0x637
mov dword [rbp + 0x14], eax
movzx eax, byte [rsp + 0x52]
mov ecx, dword [0x1800675f0]
imul ecx, eax
test ecx, ecx
je 0x18002d95a
test dl, dl
jne 0x18002d895
mov eax, esi
mov r10d, edi
not eax
test eax, eax
je 0x18002d898
mov r10d, r12d
mov rax, qword [0x180067678]
not rax
test rax, rax
jne 0x18002d8b3
cmp qword [0x180067648], rdi
mov r8d, r12d
je 0x18002d8b6
mov r8d, edi
mov al, byte [rsp + 0x50]
mov edx, edi
test al, al
mov ecx, edi
mov eax, dword [rsp + 0x64]
setne dl
test eax, eax
sete cl
and r8d, edx
xor ecx, r10d
cmp ecx, r8d
jbe 0x18002d8e8
mov ebx, dword [0x18006759c]
sub ebx, 0x807e61a
jmp 0x18002d9b0
mov rax, qword [rbp - 0x68]
not rax
test rax, rax
je 0x18002d8fc
mov r8d, r12d
test r15d, r15d
jne 0x18002d8ff
mov r8d, edi
mov edx, dword [str.hZn0]
mov ecx, edi
movzx eax, word [rsp + 0x54]
not edx
cmp eax, edx
setge cl
cmp r8d, ecx
jae 0x18002d9b0
movsx eax, byte [0x1800675ff]
mov edx, edi
movzx ecx, byte [0x1800675fa]
add ecx, eax
movsx eax, word [0x180067638]
sete dl
sub edx, eax
mov eax, dword [0x180067650]
sub edx, eax
movsxd rax, edx
mov qword [0x1800675e0], rax
mov eax, 0xef
mov word [0x180067584], ax
jmp 0x18002d9b0
mov qword [rbp - 0x68], r8
movabs rcx, 0x201161c6e8a81
mov eax, dword [0x1800675f0]
mov rdx, qword [rbp - 0x80]
movzx r8d, word [rsp + 0x58]
xor rdx, rax
mov rax, qword [rsp + 0x78]
add r8, rcx
movzx ecx, word [0x18006763c]
add r8, rdx
sub rcx, qword [0x1800675d8]
sub rcx, rax
mov rax, qword [0x1800675e0]
add al, cl
movzx ecx, r8b
movzx edx, al
imul edx, ecx
mov byte [0x180067586], dl
mov r12d, edi
mov dword [rsp + 0x5c], edi
cmp dword [rbp + 0x18], edi
jbe 0x18002dee3
movabs rax, 0x8d4535e0b3a7d
mov r10d, r14d
mov qword [rbp - 0x30], r10
jmp 0x18002daec
mov rax, qword [rbp - 0x70]
mov edx, edi
movzx ecx, byte [0x180067583]
cmp rcx, rax
mov eax, edi
setae dl
cmp byte [0x180067583], 0x16
setae al
cmp edx, eax
jbe 0x18002da47
mov edx, 0xe7
lea ecx, [rdx - 4]
call fcn.180031bbc
mov r9, qword [rbp - 0x40]
mov r10, qword [rbp - 0x30]
mov eax, eax
mov qword [0x180067610], rax
mov rax, qword [0x180067610]
test rax, rax
je 0x18002da3e
movsx rcx, byte [0x1800675fe]
mov rax, qword [0x180067620]
sub rax, rcx
mov qword [0x180067620], rax
jmp 0x18002da86
mov rbx, qword [0x180067600]
jmp 0x18002da86
cmp byte [0x18006756e], dil
je 0x18002da72
mov rax, qword [0x180067668]
add rax, 0xffffffffffffff32
mov qword [0x1800675e0], rax
movsxd rax, dword [0x18006761c]
mov qword [rsp + 0x78], rax
jmp 0x18002da86
mov eax, esi
not eax
test eax, eax
je 0x18002da86
movsx eax, byte [rbp - 0x18]
mov ecx, r15d
sub ecx, eax
or r15d, ecx
movzx eax, byte [0x180067587]
lea edx, [rbx + 0xb9]
cmp eax, edx
jne 0x18002db0f
mov eax, esi
mov ecx, 4
sar eax, 3
mov qword [0x180067668], rcx
movabs rcx, 0x8f9224ef5f9d0
mov dword [rsp + 0x64], eax
mov rax, qword [0x1800675d8]
add rax, rcx
add rax, r9
mov r9, qword [0x180067620]
mov qword [0x1800675d8], rax
movabs rax, 0x1266f69eb95ac
add r9, rax
movabs rax, 0x8d4535e0b3a7d
mov qword [rbp - 0x40], r9
mov qword [0x180067620], rax
mov rcx, qword [0x180067620]
movzx edx, word [0x180067628]
add rcx, r10
cmp rdx, rcx
je 0x18002d9d6
jmp 0x18002db16
movzx edx, word [0x180067628]
mov rbx, qword [0x180067678]
mov r8d, 1
sub ebx, 0x68
movzx eax, dx
sub dword [0x180067674], eax
mov byte [0x18006756e], r8b
movsx ecx, byte [0x18006756e]
mov qword [rbp], rbx
test ecx, ecx
je 0x18002db61
cmp ecx, r8d
jne 0x18002db83
cmp word [0x180067638], di
je 0x18002db5b
movzx r14d, word [rsp + 0x54]
jmp 0x18002db83
mov r14, qword [rbp - 0x58]
jmp 0x18002db83
movzx ecx, word [0x180067654]
movabs rax, 0x29a2ba086d077
and rcx, rax
mov eax, dword [0x180067630]
add eax, ecx
mov dword [0x180067630], eax
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x58]
mov rcx, qword [0x180067600]
sub rcx, rax
movzx eax, byte [0x1800675fb]
mov qword [0x180067600], rcx
mov ecx, r8d
sub ecx, eax
mov eax, dword [rsp + 0x68]
add eax, 0x6b4
mov dword [0x180067618], 0x534e2ef5
mov dword [rbp - 0x30], eax
movsx eax, byte [0x1800675fe]
mov word [0x180067654], ax
mov eax, dword [rsp + 0x68]
add eax, 0x5e3
imul r13d, ecx
mov dword [rbp + 0x28], eax
mov byte [rsp + 0x52], r14b
mov eax, dword [rsp + 0x68]
add eax, 0x5b1
mov byte [0x1800675fa], 0x48
mov dword [rbp - 0x78], eax
movzx eax, byte [rsp + 0x50]
movzx ecx, byte [0x1800675fa]
add ecx, eax
movsx eax, word [0x18006756c]
cmp eax, ecx
jne 0x18002dcdf
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov byte [0x18006756f], al
mov al, byte [0x18006756f]
test al, al
je 0x18002dc4e
mov rax, qword [rbp - 0x80]
mov qword [0x180067620], rax
movzx eax, byte [0x1800675fb]
shl eax, 3
mov dword [0x180067608], eax
jmp 0x18002dcdf
mov rax, qword [rsp + 0x78]
mov ecx, 0x90f8
movzx r8d, word [0x180067584]
not ax
movzx edx, word [0x1800675cc]
imul r8d, ecx
not dx
add dx, ax
mov ecx, edi
mov eax, esi
imul eax, esi
xor r8w, dx
movsx edx, word [rbp - 0x48]
test eax, eax
movzx eax, byte [0x1800675fb]
sete cl
add r8w, cx
mov ecx, edi
sub r8w, ax
movzx eax, word [rsp + 0x54]
cmp byte [rbp - 0x10], dil
mov word [0x18006763c], r8w
cmove ecx, eax
movsx eax, byte [0x1800675ff]
not ecx
sub ecx, eax
movzx eax, byte [rsp + 0x51]
add edx, dword [0x180067674]
add ecx, eax
mov eax, dword [0x1800675f0]
sub dl, al
add dl, 1
movsx eax, cl
movsx ecx, dl
imul ecx, eax
mov byte [0x1800675fe], cl
mov ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x78]
or ecx, eax
mov edx, dword [rbp - 0x30]
mov eax, dword [rbp + 0x28]
sub edx, ecx
shl eax, 3
cmp eax, edx
je 0x18002deb7
movsx ecx, byte [0x1800675ff]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov r9d, 0x407fd840
mov r8d, r14d
mov eax, eax
add r8, r9
mov qword [rbp - 0x70], rax
jmp 0x18002dd7b
movsx ecx, byte [0x18006756f]
mov eax, dword [0x180067650]
add al, cl
mov byte [0x18006756f], al
movzx ecx, byte [rsp + 0x50]
mov eax, dword [0x18006760c]
add ecx, 0x948c1b6
cmp eax, ecx
jne 0x18002dd8d
mov al, byte [0x1800675fb]
add al, al
add al, byte [0x180067668]
mov byte [0x1800675fb], al
movzx eax, byte [rsp + 0x51]
movzx edx, byte [rsp + 0x50]
mov ecx, dword [0x1800675f0]
sub rdx, rax
mov rax, qword [rbp - 0x80]
sub cx, ax
or cx, dx
mov word [rsp + 0x58], cx
mov eax, dword [0x18006760c]
mov qword [0x180067648], r9
cmp rax, r8
je 0x18002dd1b
mov ecx, dword [rsp + 0x70]
mov eax, dword [rbp - 0x1c]
imul ecx, eax
mov eax, dword [rbp + 0x14]
cmp ecx, eax
je 0x18002deb7
mov eax, 1
mov byte [0x18006756f], al
mov ecx, dword [0x180067660]
movsx eax, byte [0x18006756e]
add eax, ecx
mov qword [0x180067600], rax
movzx eax, byte [rsp + 0x51]
mov rcx, qword [rbp - 0x68]
sub rcx, rax
mov qword [rbp - 0x68], rcx
movsx eax, byte [0x18006756f]
test al, al
je 0x18002ddf0
cmp eax, 1
jne 0x18002de06
mov rax, qword [rbp - 0x58]
mov word [0x180067638], ax
jmp 0x18002de06
mov eax, dword [rsp + 0x64]
test eax, eax
mov al, byte [0x180067587]
jne 0x18002de02
mov al, byte [rsp + 0x51]
movzx r13d, al
mov rcx, qword [rbp + 0x30]
mov edx, r12d
mov rax, qword [rcx + rdx*8]
cmp dword [rax + 0x10c], edi
jbe 0x18002deb7
cmp qword [0x180067658], rdi
jne 0x18002de3a
mov al, byte [rsp + 0x53]
mov al, byte [rsp + 0x50]
mov eax, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
mov byte [rsp + 0x51], al
cmp byte [rbp + 0xc], dil
jne 0x18002de54
mov rdx, qword [rcx + rdx*8]
mov r8, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rdx]
call fcn.18002f3d0
mov eax, 0xb9
movsxd r12, r13d
movabs rcx, 0xf8d07f903988b
mov byte [0x180067587], al
mov rax, qword [0x180067620]
add r12, rcx
cmp rax, r12
jne 0x18002deb7
mov edi, 1
mov ebx, 0xb9
movsx eax, word [0x18006756c]
add eax, r13d
cmp eax, edi
jne 0x18002deb1
call qword [sym.imp.USER32.dll_GetMessageExtraInfo]
mov dword [0x180067634], eax
mov byte [0x180067587], bl
mov rax, qword [0x180067620]
cmp rax, r12
je 0x18002de85
mov rbx, qword [rbp]
xor edi, edi
mov r8d, dword [rsp + 0x5c]
movabs rax, 0x8d4535e0b3a7d
mov r9, qword [rbp - 0x40]
inc r8d
mov r12d, r8d
mov dword [rsp + 0x5c], r8d
cmp r8d, dword [rbp + 0x18]
jb 0x18002d9ca
mov r11, qword [rbp - 0x48]
movzx ecx, word [0x18006756c]
mov eax, 0x62f2
sub cx, ax
mov eax, dword [0x1800675f0]
add cx, ax
movsx eax, r11w
not eax
mov word [0x18006756c], cx
mov ecx, dword [0x18006760c]
not ecx
add ecx, eax
sete dl
cmp dword [0x1800675cc], edi
sete al
sub dl, al
movzx eax, word [rsp + 0x54]
neg ax
mov eax, dword [rbp + 0x18]
sbb r12b, r12b
add r12b, 0x16
add r12b, dl
add r12b, bl
add r12b, byte [rbp - 0x28]
mov byte [rsp + 0x6c], r12b
test eax, eax
je 0x18002e7fc
mov rcx, qword [rbp + 0x30]
mov qword [rbp - 0x10], rcx
movsxd rdx, dword [str.hZn0]
xor r8d, r8d
mov rcx, qword [0x1800675e8]
call fcn.180031dcc
mov dword [0x18006760c], eax
mov eax, dword [0x18006760c]
test eax, eax
jne 0x18002df92
mov al, byte [0x180bd5d30]
mov byte [0x1800675bf], al
movsx rax, byte [0x1800675f9]
mov qword [0x180067668], rax
mov rax, qword [rbp - 0x10]
mov rax, qword [rax]
cmp dword [rax + 0x10c], edi
jbe 0x18002e7e4
mov al, byte [rsp + 0x50]
mov ecx, edi
test al, al
mov r8d, 0x63b8880d
mov eax, edi
sete cl
cmp byte [0x1800675be], dil
sete al
add ecx, eax
movzx eax, byte [rsp + 0x51]
sub rcx, rax
lea eax, [r13 - 0x5599fe70]
mov qword [0x180067600], rcx
movsxd rcx, eax
mov qword [rbp - 0x70], rcx
mov dword [str.hZn0], r8d
mov eax, dword [str.hZn0]
add eax, r13d
cmp dword [0x180067618], eax
jne 0x18002e062
not r14d
imul r14d, r13d
not r14d
movsx ecx, byte [rsp + 0x53]
movsx eax, byte [0x1800675ff]
sub eax, ecx
movabs rcx, 0x3656b6e5a2768
xor eax, ebx
not eax
add eax, r14d
mov qword [rbp - 0x70], rax
mov rdx, qword [rbp - 0x70]
mov eax, dword [0x18006760c]
add rdx, rcx
cmp rax, rdx
jne 0x18002e062
mov rax, qword [0x180067600]
xor rax, 0x3426
mov qword [rsp + 0x78], rax
mov dword [str.hZn0], r8d
mov eax, dword [str.hZn0]
add eax, r13d
cmp dword [0x180067618], eax
je 0x18002e003
cmp dword [0x180067664], edi
je 0x18002e0d6
movzx eax, word [0x1800675fc]
xor r8d, r8d
mov r9d, dword [0x180067674]
xor edx, edx
mov ecx, 0xa7
mov qword [rsp + 0x20], rax
call fcn.180031504
mov byte [0x18006762a], al
test al, al
jne 0x18002e0f9
test r12b, r12b
jne 0x18002e0b3
movzx eax, word [rsp + 0x58]
test ax, ax
jne 0x18002e0b3
movzx eax, byte [rsp + 0x51]
cmp rax, qword [0x180067668]
ja 0x18002e0f9
mov al, byte [rsp + 0x50]
mov ecx, 0x59c0
or al, byte [0x180dce2f0]
mov byte [rsp + 0x50], al
mov rax, qword [0x180067610]
add ax, cx
mov word [rbp - 0x50], ax
jmp 0x18002e0f9
cmp word [rbp - 0x48], di
je 0x18002e0e3
movzx ebx, word [rsp + 0x58]
jmp 0x18002e0e9
mov ebx, dword [0x18006759c]
movzx eax, r12b
imul ecx, eax, 0xfd
mov byte [0x1800675fa], cl
mov eax, dword [0x180bd5d30]
mov dword [rsp + 0x68], eax
mov rax, qword [rbp - 0x80]
mov rcx, qword [rsp + 0x78]
test rax, rax
mov byte [0x1800675f8], 0x7a
sete al
add cl, al
movzx eax, word [rsp + 0x58]
movzx edx, al
mov eax, dword [rsp + 0x68]
add eax, 0xd0e7
movzx ecx, cl
imul edx, ecx
mov ecx, 1
mov byte [0x180067583], dl
mov dword [rbp - 0x30], eax
mov dword [0x18006759c], ecx
mov eax, dword [0x18006761c]
add eax, ecx
mov dword [0x18006761c], eax
mov eax, dword [0x18006759c]
test eax, eax
je 0x18002e189
cmp eax, ecx
jne 0x18002e19c
mov edx, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x64]
movsx eax, byte [0x18006762a]
add ecx, ebx
add edx, ecx
sub eax, 0x5510c2a
mov dword [rsp + 0x64], edx
cdqe
mov qword [0x180067600], rax
jmp 0x18002e19c
movzx eax, byte [rsp + 0x52]
mov ecx, dword [0x1800675f0]
add ecx, eax
mov dword [0x1800675f0], ecx
mov eax, dword [rsp + 0x68]
add r13d, r13d
movzx ecx, byte [0x1800675ff]
add eax, 0x3ed
mov dword [rbp - 0x30], eax
sub r13d, esi
mov al, byte [0x180067608]
not al
movzx edx, al
mov eax, dword [rsp + 0x68]
imul edx, ecx
add eax, 0x436
mov byte [0x1800675fa], dl
mov dword [rbp - 0x78], eax
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov edx, edi
mov ecx, edi
cmp eax, 0xa
mov dword [rbp + 0x28], eax
mov r14d, eax
setne dl
test eax, eax
setne cl
cmp ecx, edx
jbe 0x18002e20e
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x18002e264
mov eax, 2
mov byte [0x1800675be], al
jmp 0x18002e264
mov rcx, qword [0x180067678]
mov edx, edi
mov rax, qword [0x180067640]
mov r8d, 0x807e6f29
cmp rcx, rax
mov rax, qword [rbp - 0x58]
mov ecx, edi
not rax
sete dl
cmp rax, r8
setle cl
cmp edx, ecx
jbe 0x18002e243
mov rbx, qword [rbp - 0x70]
jmp 0x18002e264
mov rcx, qword [0x180067610]
mov eax, ebx
add rcx, rax
je 0x18002e264
mov eax, 0x7e36
add ax, word [0x180067658]
mov word [0x180067670], ax
mov rcx, qword [rbp - 0x70]
mov byte [0x1800675ff], 0xd1
inc rcx
movsx rax, byte [0x1800675ff]
cmp rax, rcx
jne 0x18002e2ce
cmp byte [rbp - 0x18], dil
jne 0x18002e28a
movzx eax, word [rsp + 0x58]
movzx eax, word [0x180d3b0b2]
mov dword [rsp + 0x64], eax
mov rdx, qword [0x180067678]
mov rax, qword [rbp - 0x70]
add rdx, rax
mov rax, qword [rbp - 0x70]
add rax, rdx
mov qword [rbp - 0x70], rax
mov eax, 1
cmp byte [0x1800675bf], al
jne 0x18002e2ce
mov al, byte [rsp + 0x52]
add r15b, 0x24
mov rax, qword [rbp - 0x58]
mov byte [0x1800675be], r15b
mov r15d, dword [0x18006761c]
mov ecx, edi
mov rax, qword [rbp - 0x68]
sub r15d, 0x40daff96
movsx edx, byte [rbp - 0x18]
test rax, rax
mov byte [0x1800675ff], 0xd1
sete cl
sub ecx, edx
cmp word [0x180067638], di
mov dword [0x180067618], ecx
je 0x18002e316
mov al, byte [rsp + 0x51]
movzx eax, word [rsp + 0x54]
mov byte [0x1800675bf], 0xc5
jmp 0x18002e322
mov rax, qword [rbp - 0x80]
and al, 0xf2
mov byte [0x180067587], al
mov edx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x78]
or edx, eax
mov ecx, dword [rbp - 0x30]
mov eax, 0x104a8
add ecx, 0xf554
xor ecx, edx
sub eax, ecx
mov ecx, edi
mov dword [rbp - 0x1c], eax
mov eax, dword [0x180067630]
mov rdx, qword [rbp - 0x80]
sub rdx, rax
mov rax, qword [rbp - 0x80]
xor rax, rdx
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x58]
test rax, rax
movsx eax, word [rbp - 0x48]
sete cl
xor r9d, r9d
add ecx, eax
mov eax, dword [0x180bd5d30]
mov dword [0x1800675f4], ecx
mov dword [rsp + 0x68], eax
mov dword [0x180067634], 0xb3
mov eax, dword [0x180067650]
shl eax, 8
cdqe
mov qword [0x180067668], rax
mov eax, dword [rsp + 0x68]
add eax, 0x3c6
mov dword [rbp - 0x30], eax
mov eax, 0x17
movsxd r8, dword [0x180067650]
mov rcx, qword [0x180067640]
mov qword [rsp + 0x20], rax
lea edx, [rax + 0x10]
call fcn.1800311f4
mov dword [rsp + 0x64], eax
mov edx, edi
movzx eax, word [0x1800675fc]
mov r8d, 0x89de7ed2
add eax, dword [0x1800675cc]
mov ecx, edi
cmp eax, ebx
mov rax, qword [0x180067600]
seta dl
cmp rax, r8
mov r8, qword [rbp - 0x48]
setge cl
cmp ecx, edx
ja 0x18002e40d
movzx eax, byte [0x1800675fa]
sub r8w, ax
mov qword [rbp - 0x48], r8
jmp 0x18002e4b6
movsx rax, word [rbp - 0x50]
mov ecx, edi
cmp rax, qword [0x180067648]
seta cl
imul ecx, dword [0x1800675f4]
test ecx, ecx
je 0x18002e439
movzx eax, byte [0x1800675bf]
mov word [0x180067638], ax
jmp 0x18002e4b6
mov eax, dword [0x18006760c]
mov rdx, qword [rbp - 0x80]
xor rdx, rax
mov rax, rdi
test r8w, r8w
sete al
cmp rdx, rax
je 0x18002e479
mov al, byte [rsp + 0x51]
movsx ecx, byte [0x1800675be]
and ecx, 0xfb0f
or al, cl
mov byte [rsp + 0x51], al
imul eax, r15d, 0xca
mov qword [rbp - 0x40], rax
jmp 0x18002e4b6
mov eax, dword [rsp + 0x64]
not eax
test eax, eax
je 0x18002e4b6
movzx ecx, word [rsp + 0x54]
mov rdx, rdi
movzx eax, word [rsp + 0x58]
test cx, cx
mov ecx, edi
mov byte [0x1800675ff], dil
cmove rdx, rax
mov rax, qword [0x180067678]
test rax, rax
cmove ecx, dword [rbp - 0x40]
sub ecx, edx
mov dword [0x180067650], ecx
mov eax, dword [rsp + 0x68]
mov edx, 1
mov rcx, qword [rbp - 0x18]
add eax, 0x417
cmp qword [0x180067648], rdi
mov dword [rsp + 0x70], eax
movzx eax, word [0x180067608]
cmovne ax, word [rbp - 0x70]
mov word [0x180067638], ax
movsx eax, cl
add eax, 0xfffffcdf
mov word [0x18006763c], dx
movsxd rcx, eax
mov qword [0x180067640], rcx
mov al, byte [0x1800675fe]
test al, al
mov eax, dword [0x1800675f0]
jne 0x18002e512
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x50], ax
mov ecx, 3
mov eax, dword [rsp + 0x68]
add eax, 0x452
mov dword [rbp - 0x30], eax
mov rax, qword [0x1800675e0]
cmp rax, rcx
jg 0x18002e53f
call qword [sym.imp.USER32.dll_GetCapture]
mov byte [rsp + 0x52], al
jmp 0x18002e56f
mov rax, qword [0x180067678]
test rax, rax
je 0x18002e56f
mov eax, dword [0x180067650]
mov ecx, edi
test eax, eax
mov eax, edi
sete cl
test r8w, r8w
sete al
add cx, ax
add cx, word [0x180067674]
mov word [rbp - 0x50], cx
mov ecx, dword [rbp - 0x30]
lea rdx, [rbp + 0x60]
mov eax, dword [rsp + 0x70]
mov r9d, 0x2000
mov qword [rsp + 0x40], rdi
xor r8d, r8d
imul ecx, eax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
sub ecx, 0x11a43f
mov dword [rbp - 0x30], ecx
lea rcx, [fcn.180040a60]
call fcn.18001abb0
cmp byte [rbp + 0xc], dil
jne 0x18002e7e4
mov rax, qword [rbp - 0x10]
lea r8, [rbp + 0x60]
mov rcx, qword [rbp + 0x38]
mov r9d, 0x400
mov rdx, qword [rax]
mov rax, qword [rbp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
mov rdx, qword [rdx]
call fcn.18001bf10
test eax, eax
je 0x18002e7e4
movsx eax, word [rbp - 0x48]
mov ecx, eax
mov dword [rbp - 0x78], eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rbp - 0x70]
cmp byte [0x180067583], dil
jne 0x18002e617
mov eax, dword [str.hZn0]
movzx eax, byte [rsp + 0x52]
mov ecx, 0x74b9
add ax, cx
movabs rcx, 0x7d81399417852
mov word [rsp + 0x58], ax
movsx rax, word [rbp - 0x48]
sub rax, rcx
movsxd rcx, r13d
mov qword [rbp - 0x58], rax
call qword [sym.imp.USER32.dll_IsWindow]
mov r8d, dword [rbp - 0x78]
mov byte [0x1800675be], al
test al, al
je 0x18002e66b
movzx r13d, byte [rsp + 0x50]
mov eax, dword [0x1800675f0]
add r13d, 0x46
sub r12b, al
jmp 0x18002e6af
mov eax, r8d
not eax
test eax, eax
je 0x18002e688
movsx eax, byte [0x1800675f8]
add eax, 0x9835
cdqe
sub qword [rbp - 0x40], rax
jmp 0x18002e6af
movzx eax, word [rsp + 0x58]
test ax, ax
je 0x18002e6af
movsx ecx, byte [0x1800675f9]
mov al, r13b
add cx, 3
neg al
mov word [0x180067670], cx
mov byte [0x180067583], al
mov eax, dword [0x180bd5d30]
mov edx, edi
mov dword [rsp + 0x68], eax
movsx rcx, byte [0x1800675fe]
mov rax, qword [0x1800675e0]
cmp rax, rcx
mov rax, qword [0x1800675e0]
mov ecx, edi
setge dl
cmp rax, 0x20
setge cl
cmp edx, ecx
jae 0x18002e704
mov eax, dword [str.hZn0]
cmp esi, eax
jne 0x18002e6fd
movzx eax, byte [0x1800675bf]
mov dword [0x180067630], eax
jmp 0x18002e70e
mov dword [rsp + 0x64], r8d
jmp 0x18002e70e
mov rax, qword [rbp - 0x50]
add al, 0x5c
mov byte [rsp + 0x50], al
mov ecx, dword [rsp + 0x68]
mov eax, dword [rbp - 0x1c]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [0x18006759c]
cmp eax, r14d
jb 0x18002e740
mov al, byte [rsp + 0x52]
movzx ecx, byte [0x1800675fa]
test al, al
mov eax, 0x17
cmovne ecx, eax
mov byte [0x1800675fa], cl
mov ecx, dword [rsp + 0x68]
mov eax, dword [rbp - 0x30]
add ecx, eax
mov dword [rsp + 0x5c], ecx
mov eax, 0x7deb
movzx ecx, word [0x1800675fc]
add eax, ebx
mov word [rbp - 0x50], ax
movzx eax, cx
add ax, ax
add cx, ax
mov eax, dword [rsp + 0x68]
add eax, 0x737
mov word [0x1800675fc], cx
mov dword [rbp - 0x30], eax
mov edx, dword [rbp - 0x30]
mov eax, dword [rsp + 0x5c]
add edx, eax
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x5c]
xor ecx, eax
cmp edx, ecx
je 0x18002e7e4
movsx rcx, word [0x18006756c]
call fcn.180030f20
mov dword [0x1800675f0], eax
mov eax, dword [0x1800675f0]
mov rax, qword [0x180067610]
test rax, rax
mov eax, dword [0x18006760c]
jne 0x18002e7d3
imul ecx, eax, 0x1e
lea esi, [r14 - 0x7d0e]
mov al, byte [rsp + 0x52]
add al, cl
mov byte [rsp + 0x52], al
jmp 0x18002e7e4
mov rax, qword [0x1800675e0]
imul ebx, dword [0x1800675f4], 0x4503
add qword [rbp - 0x10], 8
sub qword [rbp + 0x48], 1
jne 0x18002df51
mov eax, dword [rbp + 0x18]
mov byte [rsp + 0x6c], r12b
mov r15d, edi
test eax, eax
je 0x18002eb91
movzx eax, word [0x18004ba68]
lea rcx, [rbp + 0x2090]
movups xmm0, xmmword [str.Current_thread_is]
mov word [rbp + 0x20a0], ax
mov al, byte [0x18004ba6a]
mov byte [rbp + 0x20a2], al
movups xmmword [rbp + 0x2090], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov r14, qword [rbp - 0x40]
mov ecx, edi
cmp r14, qword [0x180067648]
mov byte [0x18006762a], al
mov eax, dword [0x180bd5d30]
setae cl
cmp r14, 0x53
mov dword [rsp + 0x68], eax
mov eax, edi
setge al
cmp ecx, eax
jb 0x18002e8f1
test ebx, ebx
je 0x18002e889
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x18002e881
movzx eax, byte [rsp + 0x51]
jmp 0x18002e883
mov eax, ebx
mov qword [rbp - 0x40], rax
jmp 0x18002e8f1
movsx rcx, byte [0x18006756f]
mov r8d, edi
mov rax, qword [rbp - 0x58]
mov edx, edi
cmp rax, rcx
mov rcx, qword [rbp - 0x68]
mov rax, qword [rbp - 0x70]
setle r8b
cmp rcx, rax
setne dl
cmp r8d, edx
je 0x18002e8f1
movsx rax, word [0x180067670]
mov ecx, edi
mov rdx, qword [0x1800675e0]
sub rdx, rax
mov rax, qword [0x1800675e0]
and rax, rdx
mov qword [0x1800675e0], rax
mov al, byte [0x180067608]
sub al, byte [0x1800675d8]
test esi, esi
movzx eax, al
cmove ecx, eax
mov byte [rsp + 0x50], cl
mov eax, dword [rsp + 0x68]
mov r9d, 0x9a
add eax, 0x690
mov dword [rbp - 0x30], eax
movzx r8d, byte [0x180067587]
movzx edx, byte [rsp + 0x51]
mov ecx, dword [0x18006760c]
call fcn.180031380
movsxd r9, eax
test eax, eax
je 0x18002e9ed
cmp byte [0x18006756e], dil
jne 0x18002e93a
mov ecx, dword [rsp + 0x64]
mov r8, rdi
test ecx, ecx
je 0x18002e940
mov r8d, 1
mov ecx, dword [0x180067630]
mov edx, edi
movsx rax, byte [0x18006762a]
cmp qword [0x1800675e8], rax
mov eax, 1
seta dl
cmp qword [0x180067668], rcx
mov rcx, qword [rbp - 0x80]
cmovb edx, eax
not rcx
mov rax, qword [rsp + 0x78]
add rax, rcx
mov ecx, edi
cmp rax, r8
setae cl
cmp edx, ecx
je 0x18002e9b0
mov ecx, dword [0x18006759c]
mov rax, qword [0x180067600]
sub rax, rcx
mov qword [0x180067600], rax
movzx eax, byte [rsp + 0x52]
add eax, 0xa919
mov dword [0x1800675cc], eax
jmp 0x18002ea4d
movsx eax, word [0x180067670]
movzx r8d, r12b
imul r8d, eax
movzx eax, word [0x180067670]
sub ax, r8w
mov r8, qword [rbp - 0x50]
mov word [0x180067670], ax
mov rax, qword [rbp - 0x68]
test r8w, r8w
jne 0x18002e9e5
mov eax, dword [0x180067660]
mov dword [0x18006759c], eax
jmp 0x18002ea51
mov ecx, dword [0x180067608]
mov rax, qword [rbp - 0x80]
cmp rax, rcx
je 0x18002ea0c
mov al, byte [0x180067648]
sub al, 0x63
mov byte [0x1800675f8], al
jmp 0x18002ea4d
movsxd rcx, dword [0x180067664]
mov rax, qword [rbp - 0x68]
cmp rax, rcx
je 0x18002ea24
cmp dword [0x1800675f4], edi
je 0x18002ea4d
mov rax, qword [rsp + 0x78]
movzx ecx, byte [0x1800675fa]
test rax, rax
cmovne cx, word [rsp + 0x78]
mov word [0x180067670], cx
mov al, byte [rsp + 0x53]
add al, sil
mov byte [0x180067583], al
mov r8, qword [rbp - 0x50]
mov eax, dword [rsp + 0x68]
add eax, 0x62b
mov dword [rbp - 0x78], eax
mov rax, qword [0x180e72b08]
sub qword [0x180067668], rax
mov eax, dword [rsp + 0x68]
add eax, 0x630
mov dword [rbp - 0x30], eax
mov ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x78]
sub ecx, eax
mov eax, dword [rbp - 0x30]
cmp eax, ecx
je 0x18002eb84
mov rcx, qword [rbp - 0x58]
mov eax, 4
add rcx, r9
mov byte [0x1800675ff], al
mov qword [rbp - 0x58], rcx
movsx ecx, byte [0x1800675ff]
test ecx, ecx
je 0x18002eb14
sub ecx, 1
je 0x18002eb0b
sub ecx, 1
je 0x18002eafc
sub ecx, 1
je 0x18002ead7
cmp ecx, 1
jne 0x18002eb3b
mov eax, dword [0x180bd5d30]
mov dword [0x180067634], 0xfc
mov dword [0x18006759c], eax
jmp 0x18002eb3b
movzx ecx, byte [rsp + 0x50]
mov eax, dword [0x18006759c]
sub cl, al
mov byte [rsp + 0x50], cl
movzx ecx, byte [0x1800675bf]
movsx eax, r8w
imul eax, ecx
mov word [rbp - 0x50], ax
jmp 0x18002eb3b
movsx eax, byte [0x1800675fe]
mov dword [0x1800675f0], eax
jmp 0x18002eb3b
imul esi, dword [0x180067668]
jmp 0x18002eb3b
mov edx, dword [0x18006760c]
mov cl, r12b
movzx eax, byte [0x1800675fb]
add edx, eax
mov eax, dword [0x180067660]
sub cl, al
movzx eax, dl
movzx edx, cl
imul edx, eax
mov byte [rsp + 0x51], dl
mov rax, qword [rbp + 0x30]
mov r14d, edi
mov r13d, r15d
mov rcx, qword [rax + r13*8]
cmp dword [rcx + 0x10c], edi
jbe 0x18002eb84
mov rdi, rax
mov r12d, 1
mov eax, r14d
lea rcx, [rcx + rax*8]
add rcx, 0x110
call fcn.18001f524
mov rcx, qword [rdi + r13*8]
add r14d, r12d
cmp r14d, dword [rcx + 0x10c]
jb 0x18002eb5a
mov r12b, byte [rsp + 0x6c]
xor edi, edi
inc r15d
cmp r15d, dword [rbp + 0x18]
jb 0x18002e807
xor eax, eax
mov rcx, qword [rbp + 0x21e0]
xor rcx, rsp
call fcn.18003f550
lea r11, [rsp + 0x22f0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret