Function at 0x180014b2c
Capabilities:
Identify system language via api

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x180053d28]
xor rax, rsp
mov qword [rbp + 0x30], rax
movabs rax, 0xcaf2d02116ab6
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x40], rax
mov r13d, 0x28
mov dword [rsp + 0x70], 0xc1e9fb23
mov r15d, 0x452eacdb
mov qword [rbp - 0x60], 0xcf
mov ecx, 0x105
mov rax, qword [0x1800534a0]
mov word [rsp + 0x60], ax
lea r9d, [r13 - 0x27]
mov al, byte [0x180053510]
mov byte [rsp + 0x50], al
mov eax, 0xe843addc
movsx r14d, word [0x1800534e4]
mov qword [rbp - 0x70], rax
movsx rax, byte [0x1800533d3]
mov qword [rbp - 0x30], rax
movabs rax, 0x313a635256601
mov dword [rbp - 0x7c], 0x46548b3d
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x6c], 0xde5c250d
movsx rax, byte [0x1800533d7]
mov qword [rbp - 0x48], rax
movzx eax, word [0x1800534e4]
mov word [rsp + 0x5c], ax
movzx eax, word [0x1800534c8]
movzx r12d, word [0x1800533d4]
mov eax, 0xffffee18
mov word [rsp + 0x58], ax
add r12b, 5
mov rax, qword [0x1800534d0]
mov dword [rsp + 0x78], 0xed50b5f8
mov rax, qword [0x1800534d8]
mov dword [rsp + 0x74], eax
mov rax, qword [0x1800534d0]
mov dword [rbp - 0x80], eax
movabs rax, 0xd59ee543ef307
mov dword [rsp + 0x64], 0x20af
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x40], 0x80d4
movsx rax, byte [0x1800533b6]
mov qword [rbp - 0x40], rax
mov al, byte [0x1800533d6]
mov eax, 0x7b3e
mov qword [rbp - 0x18], rdx
mov word [rbp - 0x74], ax
mov eax, 0x82e1
mov dword [rsp + 0x64], 0xbe4c2340
mov word [rbp - 0x74], ax
mov word [rbp - 0x74], r12w
mov eax, dword [0x1800534f8]
cmp eax, 0x71
jge 0x180014ca0
mov eax, dword [rbp - 0x80]
sar eax, 3
cdqe
mov qword [rbp - 0x70], rax
sub rcx, r9
jne 0x180014c89
mov eax, dword [0x180583fa0]
mov r8d, 0x2269
mov dword [rsp + 0x54], eax
movabs rax, 0x2ed9b9407cf40
mov rsi, qword [rbp - 0x50]
movsx ecx, word [rsp + 0x58]
sub rsi, rax
sub ecx, 0x10ecff1a
mov dword [rsp + 0x74], ecx
mov eax, dword [rsp + 0x54]
add eax, 0xb4
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x54]
add eax, 0x295
mov dword [rsp + 0x7c], eax
movsx eax, byte [0x1800533d7]
sub eax, r15d
cdqe
xor ebx, ebx
mov qword [rbp - 0x28], rax
movsx ecx, word [0x1800534fc]
mov edx, ebx
mov eax, dword [rbp - 0x80]
cmp eax, ecx
mov eax, dword [rbp - 0x80]
mov ecx, ebx
setle dl
cmp eax, 0x51
setle cl
cmp edx, ecx
jne 0x180014d48
movzx eax, word [rsp + 0x60]
mov ecx, 0xffff8088
and ax, cx
mov word [0x1800533b4], ax
mov eax, dword [rsp + 0x78]
movsx rcx, word [rsp + 0x58]
mov qword [0x1800534c0], rcx
jmp 0x180014d5f
movsx ecx, word [0x1800534b8]
mov eax, 0xffff8ec4
cwde
imul ecx, eax
mov word [0x1800534fc], cx
sub r8, r9
jne 0x180014d01
mov eax, dword [rsp + 0x54]
lea edx, [r8 + 0x75]
add eax, 0x44
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x68], eax
mov rcx, qword [rbp - 0x60]
movzx eax, byte [0x1807c355b]
not rcx
or qword [0x1800534c0], rax
movzx eax, r12b
sub rcx, rax
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x50]
sub rcx, rax
mov qword [rsp + 0x28], 0xe6
mov qword [rbp - 0x40], rcx
movsxd rcx, dword [rsp + 0x74]
mov rax, qword [rbp - 0x60]
sub rcx, rax
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0x20e
mov qword [rbp - 8], rcx
mov dword [rbp - 0x68], eax
xor ecx, ecx
movsx rax, word [0x180053508]
movzx r9d, word [0x1800534cc]
mov qword [rsp + 0x20], rax
call fcn.180016310
cmp dword [0x1800534ec], ebx
mov dword [rsp + 0x74], eax
jne 0x180014e00
mov al, byte [0x1800533b3]
mov al, byte [0x180053373]
xor edx, edx
mov eax, dword [rsp + 0x74]
mov r8d, 0x81
mov rax, qword [rbp - 0x48]
mov rax, qword [rbp - 0x48]
mov al, byte [0x180053373]
mov al, byte [0x1800533d6]
mov rcx, qword [rbp - 0x50]
mov eax, dword [rsp + 0x6c]
movzx edi, r14w
or rcx, rdi
add ax, cx
mov word [0x1800534fc], ax
mov eax, dword [rsp + 0x54]
add eax, 0x249
mov dword [rbp - 0x38], eax
movzx ecx, word [0x18005349c]
mov rax, qword [0x1800534a0]
mov r9, qword [0x1800534b8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov qword [rsp + 0x20], 0x86
call fcn.180016310
mov word [0x1800534e4], ax
movzx eax, word [0x1800534e4]
test ax, ax
je 0x180014eab
movzx eax, word [0x180053508]
mov ecx, 0x6604
mov word [0x1805a247a], ax
movzx eax, di
sub ax, cx
mov word [rsp + 0x60], ax
mov eax, dword [rsp + 0x54]
add eax, 0x92
mov dword [rbp - 0x58], eax
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0xfc
mov dword [rsp + 0x64], eax
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
je 0x180014ee8
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_GetUpdateRect]
mov eax, dword [rsp + 0x54]
xor r9d, r9d
add eax, 0x504a
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x64], eax
mov r8d, 0xf4
call fcn.1800161f4
movzx ecx, byte [0x1800533d2]
mov edx, ebx
mov byte [0x18005339f], al
mov r8d, ebx
mov eax, dword [0x180053434]
cmp ecx, eax
mov ecx, dword [0x180053434]
mov eax, dword [rsp + 0x74]
seta dl
movzx r12d, r12b
cmp r12d, edx
mov edx, ebx
seta r8b
cmp ecx, eax
mov eax, dword [rsp + 0x6c]
mov ecx, ebx
seta dl
cmp eax, edx
setl cl
cmp r8d, ecx
jbe 0x180014f9d
mov ecx, dword [rsp + 0x78]
call fcn.18001607c
mov word [0x1800534e8], ax
test ax, ax
je 0x180014fb3
mov rax, qword [rbp - 0x60]
movsx edx, al
mov al, byte [0x180053373]
movsx ecx, r14b
imul edx, ecx
movsxd rcx, dword [rsp + 0x74]
add al, dl
mov byte [0x18005339f], al
mov rax, qword [0x1800534c0]
lea rdx, [rax + rax]
add rcx, rdx
mov qword [0x1800534c0], rcx
jmp 0x180014fb3
cmp qword [rbp - 0x28], rbx
je 0x180014fb3
mov eax, dword [rbp - 0x7c]
mov ecx, 0x5c19
sub ax, cx
mov word [rsp + 0x58], ax
mov eax, dword [rsp + 0x54]
mov ecx, 0x3a8
add eax, 0xc8
mov r14d, 1
mov dword [rsp + 0x54], eax
movzx eax, word [0x1800534c8]
add ax, r14w
mov word [0x1800534c8], ax
sub rcx, r14
jne 0x180014fcb
mov edx, 0x886048bd
jmp 0x18001501b
movsx ecx, byte [0x1800533b7]
mov eax, dword [rsp + 0x70]
add eax, ecx
cmp eax, r14d
jne 0x180015037
movzx eax, word [0x1800534b0]
imul ecx, eax, 0xd0
mov eax, dword [0x18005345c]
add eax, 0xffffffaa
mov qword [rbp - 0x28], rax
mov dword [0x18005350c], ecx
movzx ecx, byte [rsp + 0x50]
movzx eax, word [0x1800534b0]
add ecx, 0xa050
mov dword [0x1800534b4], edx
cmp eax, ecx
je 0x180014fe9
movzx eax, word [0x1800534e4]
mov word [0x180053508], ax
lea eax, [rdi - 0x1a89bcf6]
mov dword [rsp + 0x78], eax
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x68]
sub ecx, eax
mov eax, dword [rsp + 0x7c]
xor eax, ecx
mov ecx, dword [rsp + 0x7c]
xor ecx, eax
mov eax, dword [rsp + 0x54]
xor eax, 0x5d
sub ecx, eax
add ecx, 0x15b
mov dword [rbp - 0x78], ecx
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x1800150e8
movsxd rax, dword [0x18005350c]
xor r9d, r9d
movzx ecx, word [0x1800534e4]
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov rax, qword [rbp - 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x51
call fcn.180016310
mov r15, rax
test eax, eax
je 0x1800150d4
movzx ecx, word [0x1800534c8]
call qword [sym.imp.USER32.dll_IsWindowVisible]
mov ecx, eax
mov qword [0x1800534d0], rcx
jmp 0x1800151cd
mov eax, dword [rbp - 0x7c]
movsx ecx, al
imul eax, ecx, 0xffffffd7
mov byte [0x1800533b3], al
jmp 0x1800151cd
movzx eax, word [0x1800534cc]
test ax, ax
je 0x180015134
mov rdx, qword [rbp - 0x70]
movsx rax, word [rsp + 0x58]
not rdx
imul rdx, qword [0x1800534f0]
not rdx
sub rdx, rax
mov rax, qword [rbp - 0x70]
add rax, rdx
mov qword [rbp - 0x50], rax
mov ecx, dword [0x18005350c]
add ecx, 0x1f70
add ecx, r12d
mov dword [0x18005350c], ecx
jmp 0x1800151cd
movzx eax, word [0x1800534e0]
test ax, ax
je 0x18001517d
movzx eax, word [0x1800534e0]
movzx edx, word [rsp + 0x5c]
movzx ecx, dx
sub cx, ax
movzx eax, word [0x1800534e0]
add cx, ax
movsxd rax, dword [0x18063f970]
mov word [0x1800534e0], cx
mov rcx, qword [0x1800534d0]
add rcx, rax
mov qword [0x1800534d0], rcx
jmp 0x1800151d2
cmp qword [0x180053510], rbx
jne 0x18001519f
cmp word [0x1800534e8], bx
jne 0x18001519f
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x1800151cd
cmp qword [0x180053510], rbx
je 0x1800151cd
mov al, byte [0x180583fa0]
mov byte [0x1800533d7], al
movsx edx, byte [0x1800533b3]
movzx ecx, word [0x180053508]
movzx eax, word [0x180053508]
add dx, ax
add dx, cx
mov word [0x180053508], dx
movzx edx, word [rsp + 0x5c]
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0xb976
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x54]
movsx rcx, byte [0x1800533d3]
add eax, 0x24e8
mov dword [rsp + 0x68], eax
mov rax, qword [rbp - 0x70]
cmp rcx, rax
jae 0x180015250
movsx ecx, byte [0x18005339f]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov al, byte [0x1800533d7]
test al, al
jne 0x180015279
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x180015279
movzx ecx, word [0x1800534e0]
movzx eax, word [0x1800534e0]
sub ecx, r12d
sub cx, ax
mov eax, 0x5f56
mov word [0x1800534e0], cx
mov word [0x18005349c], ax
jmp 0x180015279
mov eax, dword [rsp + 0x6c]
mov rcx, rbx
mov rax, qword [rbp - 0x50]
cmp rax, rbx
jb 0x180015279
movsx eax, dx
mov ecx, 0xffffff12
sub ecx, eax
mov eax, dword [rsp + 0x74]
not al
add r15d, ecx
mov byte [0x1800533d3], al
mov eax, dword [rsp + 0x54]
add eax, 0x4833
mov dword [rsp + 0x7c], eax
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x1800152a2
call qword [sym.imp.USER32.dll_GetCursor]
test rax, rax
je 0x1800152a2
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetCaretPos]
mov byte [0x1800533d7], 0xf6
mov rdx, qword [rbp - 0x60]
movsx rax, byte [0x1800533d7]
inc rdx
cmp rax, rdx
jne 0x1800152d5
mov eax, dword [0x18005350c]
cmp eax, r14d
jne 0x1800152d5
movzx eax, word [rsp + 0x58]
sub al, 0xc
mov byte [0x1800533d2], al
movzx edi, word [0x1800534b4]
mov eax, 0x2ffd
sub di, ax
mov byte [0x1800533d7], 0xf6
mov eax, dword [rsp + 0x7c]
mov ecx, 0x6f01
sub ecx, eax
mov edx, ebx
mov eax, dword [rsp + 0x68]
sub ecx, eax
mov dword [rsp + 0x7c], ecx
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x60]
imul rcx, rsi
add rax, rcx
mov qword [rbp - 0x60], rax
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x54], eax
movzx ecx, word [0x1800534c8]
mov rax, qword [rbp - 0x30]
cmp rcx, rax
movzx eax, word [0x1800534c8]
mov ecx, ebx
setg dl
cmp ax, 0x25
seta cl
cmp edx, ecx
ja 0x180015385
movzx ecx, byte [0x1800533d6]
mov rax, qword [rbp - 0x50]
cmp rax, rcx
jbe 0x180015371
mov al, byte [0x1800533b7]
movsxd rcx, dword [0x1800534f8]
test al, al
jne 0x180015369
mov rcx, qword [rbp - 0x70]
mov byte [0x1800533d6], cl
jmp 0x18001539b
mov rax, qword [rbp - 0x48]
cmp rax, 0x51f4988a
jne 0x18001539b
mov al, byte [0x18005339e]
jmp 0x18001539b
movzx eax, di
xor eax, 0x55ef
mov dword [0x1800534b4], eax
mov qword [rbp - 0x30], 0xbe
mov eax, dword [rsp + 0x54]
mov r14, qword [rbp - 0x10]
add eax, 0x1d4
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x54]
add eax, 0xfa
mov dword [rsp + 0x60], eax
mov rax, qword [str.J8]
cmp qword [0x180053510], rax
jne 0x1800153d2
mov rax, qword [rbp - 0x70]
cmp r14, rax
je 0x180015425
movsx r9, word [0x180053508]
xor ecx, ecx
movzx edx, byte [0x1800533d6]
lea r8d, [rcx + 0x1d]
call fcn.1800161f4
mov qword [0x1800534b8], rax
test rax, rax
js 0x180015425
mov eax, dword [0x1800534f8]
test eax, eax
je 0x180015425
movzx eax, byte [0x1807b808f]
mov word [0x1800533b4], ax
movzx eax, word [0x1800534e4]
sub ax, word [0x1800534c0]
mov word [0x1800534e4], ax
mov ecx, dword [rsp + 0x54]
mov edx, 1
mov eax, dword [rbp - 0x78]
add ecx, eax
mov dword [rsp + 0x64], ecx
mov ecx, 0x1ed1
mov dword [rsp + 0x6c], 8
mov al, byte [0x1800533d2]
test al, al
jne 0x18001546d
mov eax, dword [0x180053510]
neg eax
mov dword [0x18005345c], eax
movzx eax, word [0x1800534cc]
sub ax, dx
mov word [0x1800534cc], ax
sub rcx, rdx
jne 0x180015444
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x7c]
imul ecx, eax
imul edx, ecx, 0xb2
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x60]
sub ecx, eax
cmp edx, ecx
je 0x180015e32
mov edx, dword [0x18005345c]
mov r9d, 0x4d
mov r8, qword [str.J8]
lea ecx, [r9 + 0x32]
call fcn.1800161f4
mov qword [0x1800534f0], rax
test rax, rax
je 0x1800154df
movzx ecx, word [0x18005349c]
mov rax, qword [rbp - 0x60]
not ecx
sub ecx, dword [0x180053510]
movzx r13d, word [0x1800534e4]
not ecx
sub ecx, eax
add r13d, ecx
movzx eax, byte [0x180053373]
mov edx, ebx
cmp rsi, rax
mov eax, ebx
mov al, 1
setge dl
cmp edx, eax
jb 0x180015506
movsx eax, word [rsp + 0x5c]
shl eax, 7
cdqe
mov qword [rbp - 0x70], rax
jmp 0x180015532
mov rcx, qword [0x1800534a0]
mov rax, qword [0x1800534a0]
add rcx, rax
movzx eax, di
add rcx, rax
mov qword [0x1800534a0], rcx
movzx eax, word [0x18005349c]
mov qword [0x1807b0728], rax
mov eax, dword [0x180583fa0]
movsx rcx, byte [0x18005339f]
mov dword [rsp + 0x54], eax
call qword [sym.imp.USER32.dll_GetLastActivePopup]
cmp word [0x1800534b0], bx
mov byte [0x1800533d2], al
je 0x18001555f
mov al, byte [0x18005339e]
test di, di
jne 0x180015568
mov eax, dword [rsp + 0x70]
mov eax, dword [rbp - 0x7c]
mov ecx, 1
add eax, ecx
mov dword [rbp - 0x7c], eax
mov eax, 0xa3
movzx edi, word [0x1800534e4]
add di, ax
mov eax, 0xd23
mov dword [rsp + 0x6c], 4
sub rax, rcx
jne 0x180015589
mov eax, dword [rsp + 0x54]
add eax, 0x222
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x54]
add eax, 0x34
mov dword [rsp + 0x68], eax
mov dword [rbp - 0x7c], 0x7d5c089f
mov eax, dword [rsp + 0x54]
add eax, 0x13a
mov dword [rsp + 0x64], eax
mov rcx, qword [0x1800534a0]
call qword [sym.imp.USER32.dll_GetParent]
mov word [rsp + 0x60], ax
movzx eax, word [rsp + 0x60]
test ax, ax
je 0x180015673
movzx eax, byte [rsp + 0x50]
mov edx, ebx
cmp rax, qword [0x180053510]
mov ecx, ebx
mov al, byte [rsp + 0x50]
sete dl
cmp al, 0x64
sete cl
cmp edx, ecx
jae 0x18001561a
movzx ecx, byte [0x18005339e]
mov eax, 0x5db5
add cx, ax
mov word [0x18005349c], cx
jmp 0x180015681
cmp word [0x1800534e8], bx
je 0x180015681
movsx ecx, word [0x1800534fc]
movzx eax, word [0x1800534e8]
add eax, ecx
not eax
movsxd rdx, eax
mov rax, qword [0x180053500]
movsx ecx, byte [0x18005339f]
xor rax, r14
sub rdx, rax
xor ecx, r12d
mov eax, dword [rsp + 0x78]
imul eax, r13d
not eax
imul eax, ecx
xor rax, rdx
mov qword [rbp - 0x70], rax
mov al, byte [0x1800534b0]
sub al, 0x51
mov byte [0x18005339f], al
jmp 0x180015681
mov rax, qword [0x1800534d8]
mov qword [0x180053500], rax
mov eax, dword [0x180583fa0]
mov ecx, r12d
mov dword [rsp + 0x54], eax
lea eax, [r13 - 0x199d]
mov dword [0x1800534ec], 0x76
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x54]
add eax, 0x5c83
mov dword [rbp - 0x78], eax
mov eax, dword [rsp + 0x54]
add eax, 0xf7
mov dword [rsp + 0x64], eax
movsx eax, word [0x1800533b4]
imul edx, eax, 0x5d584361
movzx eax, word [0x18005349c]
or ax, dx
mov word [0x18005349c], ax
mov eax, dword [rsp + 0x54]
add eax, 0x78
mov dword [rsp + 0x64], eax
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
cmp qword [0x1800534c0], rbx
mov byte [0x180053373], al
je 0x180015713
mov eax, dword [rbp - 0x80]
cmp dword [0x18005345c], eax
jae 0x180015713
imul rax, r14, 0x7e8d
mov qword [0x1800534c0], rax
mov eax, dword [rbp - 0x78]
mov ecx, 0xab
add eax, 0x69
xor eax, 0x5fdc
mov dword [rsp + 0x64], eax
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x54], eax
lea eax, [rdi + 0x19]
mov byte [0x1800533b6], al
mov eax, dword [rsp + 0x54]
add eax, 0xae
neg qword [rbp - 8]
mov dword [rbp - 0x78], eax
sbb rdx, rdx
not rdx
and rdx, rcx
neg qword [rbp - 0x40]
sbb rax, rax
not rax
and rax, rcx
sub rdx, rax
movzx eax, word [0x1800534c8]
imul eax, eax, 0x8010
movsxd rcx, eax
movabs rax, 0x77ef5b570a102db
add rdx, rax
mov eax, dword [rsp + 0x78]
not eax
add rdx, rcx
movsx rcx, word [rsp + 0x58]
imul r8d, eax, 0x66e549a9
movabs rax, 0xc818c2552752b
add rcx, rax
movsx eax, byte [0x1800533b6]
xor r8, rdx
movzx edx, word [rsp + 0x60]
add edx, eax
xor rcx, r8
movzx eax, word [rsp + 0x60]
xor ax, dx
mov qword [0x1800534c0], rcx
mov word [rsp + 0x60], ax
mov eax, dword [rsp + 0x54]
add eax, 0x8aa
mov dword [rsp + 0x7c], eax
movzx ecx, word [rsp + 0x58]
movzx eax, word [rsp + 0x58]
cmp cx, ax
jle 0x1800158d7
lea rcx, str.gdi32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
movzx ecx, word [rsp + 0x60]
mov edx, ebx
mov byte [0x18005339f], al
mov eax, dword [0x1800534f8]
cmp eax, ecx
movsx ecx, byte [0x1800533b3]
setle dl
not ecx
cmp edx, ecx
jge 0x180015865
mov eax, dword [rsp + 0x70]
mov ecx, ebx
mov eax, dword [rsp + 0x70]
mov r12d, 1
add ecx, eax
mov eax, dword [rbp - 0x80]
not eax
add al, byte [str.J8]
add al, r12b
xor al, cl
mov byte [0x1800533b7], al
cmp word [rsp + 0x5c], bx
je 0x180015858
mov rsi, qword [0x1800534a0]
jmp 0x1800158f4
movsx rsi, byte [0x1800533b3]
jmp 0x1800158f4
movzx ecx, word [0x1800534cc]
movzx eax, word [rsp + 0x60]
add eax, ecx
je 0x1800158a0
movzx ecx, byte [0x1800533d6]
mov eax, dword [rsp + 0x74]
sub ecx, eax
mov eax, dword [rsp + 0x74]
add eax, ecx
mov ecx, 0x56
mov dword [rsp + 0x74], eax
mov eax, dword [rbp - 0x7c]
sub cx, ax
mov word [0x1800534b0], cx
jmp 0x1800158ee
movzx eax, byte [rbp - 0x74]
mov ecx, ebx
cmp ax, di
mov eax, dword [rbp - 0x80]
sete cl
cmp eax, ecx
je 0x1800158ee
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x1800158c1
movsxd rcx, dword [rbp - 0x80]
jmp 0x1800158c8
mov rcx, qword [0x1800534f0]
mov eax, dword [0x180583fa0]
mov dword [rsp + 0x70], ecx
mov dword [rbp - 0x80], eax
jmp 0x1800158ee
movzx edx, byte [0x1800533d6]
movzx eax, byte [0x1800533d3]
imul edx, eax
mov byte [0x1800533d6], dl
mov r12d, 1
mov eax, dword [rsp + 0x54]
mov rdi, rsi
add eax, 0x4e41
mov ecx, 0x127
mov dword [rsp + 0x7c], eax
shl rdi, 7
movzx eax, word [0x1800534e4]
sub ecx, r12d
add ax, r12w
mov word [0x1800534e4], ax
test ecx, ecx
jg 0x18001590d
mov ecx, dword [rbp - 0x38]
mov eax, dword [rbp - 0x38]
sub ecx, eax
mov edx, dword [rbp - 0x58]
mov eax, dword [rbp - 0x68]
sub edx, eax
mov r10, qword [rbp - 0x20]
imul edx, ecx
mov ecx, dword [rsp + 0x7c]
mov eax, dword [rbp - 0x78]
xor ecx, eax
mov eax, dword [rsp + 0x7c]
sub ecx, eax
add ecx, 0x2835
xor ecx, 0x2bb8
sub ecx, edx
mov dword [rbp - 0x58], ecx
test r10, r10
je 0x18001596f
mov r11, qword [rbp - 0x18]
test r11, r11
jne 0x180015e40
mov byte [0x18005339e], 0xf9
mov ecx, 0x1ce
mov rax, qword [rbp - 0x70]
add ax, 0x4f
mov word [0x1800534e4], ax
sub rcx, r12
jne 0x18001597b
mov ecx, 0xed
call fcn.18001607c
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x6c]
test eax, eax
je 0x1800159e9
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x1800159f7
movzx eax, word [0x1800533d4]
test ax, ax
je 0x1800159f7
movzx eax, word [rsp + 0x60]
mov edx, dword [rsp + 0x6c]
not eax
movsx ecx, word [0x1800533b4]
imul ecx, eax
movzx eax, byte [rsp + 0x50]
imul edx, ecx
imul edx, r15d
sub edx, eax
movsxd rax, edx
mov qword [0x180053500], rax
jmp 0x1800159f7
movzx eax, r13b
imul ecx, eax, 0x96
mov byte [rsp + 0x50], cl
mov eax, dword [0x180583fa0]
lea r14d, [r15 - 1]
mov dword [rsp + 0x54], eax
xor r8d, r8d
mov eax, dword [rsp + 0x54]
xor edx, edx
add eax, 0x2909
mov r15d, r14d
mov dword [rbp - 0x68], eax
movsx ecx, word [rsp + 0x58]
movzx eax, word [0x1800534b0]
sub ecx, eax
movzx eax, word [rsp + 0x58]
add byte [0x1800533d3], r12b
add ax, cx
mov word [rsp + 0x58], ax
mov eax, dword [rsp + 0x54]
add eax, 0x2b
mov dword [rbp - 0x78], eax
mov eax, dword [rsp + 0x54]
add eax, 0x456c
mov dword [rsp + 0x54], eax
movzx r9d, byte [rsp + 0x50]
mov ecx, dword [rsp + 0x78]
call fcn.1800161f4
mov byte [0x1800533b3], al
mov al, byte [0x1800533b3]
test al, al
je 0x180015aa5
mov eax, dword [0x18003c868]
lea rcx, [rbp]
movsd xmm0, qword [str.NCryptOpenKey]
mov dword [rbp + 8], eax
movzx eax, word [0x18003c86c]
mov word [rbp + 0xc], ax
movsd qword [rbp], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rcx, eax
mov qword [rbp - 0x60], rcx
jmp 0x180015b16
movsxd rax, dword [0x1800534b4]
cmp rax, qword [str.J8]
ja 0x180015ac2
mov eax, dword [rsp + 0x70]
add eax, r14d
mov dword [rsp + 0x70], eax
jmp 0x180015b16
movzx ecx, byte [0x1800533d2]
movsx eax, word [0x1800533b4]
imul eax, ecx
imul eax, dword [0x18005345c]
test eax, eax
je 0x180015b16
mov eax, dword [rsp + 0x6c]
mov rdx, rbx
and word [0x1800534b0], ax
movzx eax, word [0x1800534fc]
test ax, ax
movzx eax, word [0x18005349c]
movsx rcx, word [rsp + 0x58]
sete dl
xor rcx, rsi
sub rdx, rax
and rcx, rdx
mov qword [0x1800534b8], rcx
mov byte [0x1800533b3], 0x42
movzx edx, word [rsp + 0x60]
movsx eax, byte [0x1800533b3]
inc edx
cmp eax, edx
jne 0x180015b67
mov ecx, dword [0x1800534b4]
movsx eax, word [0x1800533b4]
add ecx, eax
mov dword [0x1800534b4], ecx
cmp ecx, r12d
jne 0x180015b67
movzx ecx, word [0x18005349c]
mov eax, dword [0x180583fa0]
shr rcx, 4
mov qword [0x180053510], rcx
mov dword [0x1800534ec], eax
mov byte [0x1800533b3], 0x42
xor r9d, r9d
movzx eax, byte [rsp + 0x50]
xor r8d, r8d
xor rax, 0x841
mov qword [rbp - 0x70], rax
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x68]
sub ecx, eax
mov eax, dword [rsp + 0x68]
mov edx, dword [rsp + 0x54]
imul eax, ecx
imul ecx, eax, 0x38b
mov eax, dword [rsp + 0x54]
xor edx, eax
sub edx, ecx
mov ecx, dword [rsp + 0x54]
mov eax, dword [rbp - 0x68]
or eax, ecx
movsxd rcx, r14d
add eax, 0xffff9293
add eax, edx
mov edx, 0xd6
mov dword [rbp - 0x78], eax
call fcn.1800161f4
mov ecx, dword [0x1800534f8]
mov rsi, rax
xor ecx, 0x731d25d8
mov dword [rsp + 0x70], ecx
movsx ecx, byte [0x1800533b7]
mov word [0x18005349c], cx
mov ecx, dword [0x180583fa0]
mov dword [rsp + 0x68], ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx ecx, ax
mov qword [rbp - 0x60], rcx
mov ecx, dword [rsp + 0x68]
add ecx, 0x332
mov dword [rbp - 0x68], ecx
lea rcx, str.comdlg32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov word [0x1800533d4], ax
movzx eax, word [0x1800533d4]
test ax, ax
jne 0x180015c98
movsx eax, byte [0x1800533b6]
mov r8d, ebx
cmp word [0x1800533b4], ax
mov eax, ebx
setne r8b
cmp word [0x1800533b4], 2
setne al
cmp r8d, eax
jb 0x180015c5b
mov byte [0x1800533d3], 0x9a
jmp 0x180015cab
mov rax, rsi
not rax
test rax, rax
jne 0x180015c70
mov al, byte [0x1800533b3]
test al, al
je 0x180015cab
movzx ecx, word [rsp + 0x60]
mov r13d, 0x4ad97b47
mov rdx, qword [0x1800534d0]
mov rax, qword [0x1800534d0]
add rdx, rcx
or rax, rdx
mov qword [0x1800534d0], rax
jmp 0x180015cab
mov al, byte [0x1800533d2]
movzx eax, word [0x1800533d4]
mov al, byte [0x1800533d7]
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x64]
add ecx, eax
mov dword [rsp + 0x64], ecx
mov ecx, dword [rsp + 0x78]
mov rax, qword [rbp - 0x48]
cmp rax, rcx
jb 0x180015ccf
movzx eax, di
shr eax, 5
mov dword [rbp - 0x7c], eax
mov ecx, dword [rsp + 0x68]
mov eax, dword [rbp - 0x58]
add ecx, eax
mov dword [rbp - 0x58], ecx
mov ecx, 0x9cd2
mov word [0x1800534e0], cx
movzx eax, word [0x1800534e0]
mov word [0x1800534e0], cx
mov byte [0x1800533d2], r13b
mov ecx, dword [rbp - 0x68]
mov eax, dword [rsp + 0x64]
xor ecx, 0x2c2
cmp ecx, eax
je 0x180015e38
xor ecx, ecx
call fcn.18001607c
mov qword [0x1800534a0], rax
movzx ecx, word [0x18005349c]
mov rax, qword [0x1800534a0]
cmp rcx, rax
jne 0x180015d5f
movzx eax, word [0x1800533d4]
test ax, ax
je 0x180015d5f
mov al, byte [0x1800534c0]
mov ecx, 0xf4
add al, 0x34
mov byte [rsp + 0x50], al
mov rax, qword [rbp - 0x70]
add ax, cx
mov word [0x1800534b0], ax
jmp 0x180015d90
movups xmm0, xmmword [0x18003c880]
lea rcx, [rbp + 0x10]
movzx eax, word [0x18003c898]
movsd xmm1, qword [0x18003c890]
movups xmmword [rbp + 0x10], xmm0
mov word [rbp + 0x28], ax
movsd qword [rbp + 0x20], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [rsp + 0x70], eax
movzx ecx, byte [0x18005339e]
mov r10d, 0x20
mov word [rsp + 0x30], bx
xor r8d, r8d
mov word [rsp + 0x28], r10w
lea r9d, [r10 + 0x55]
lea r11d, [r10 - 0x12]
lea edx, [r9 + 0x49]
mov word [rsp + 0x20], r11w
call fcn.180016468
movsx rcx, ax
mov qword [rbp - 0x70], rcx
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x180015e2a
movzx eax, word [0x1800534b0]
cmp rax, qword [rbp - 0x28]
je 0x180015dfc
movzx edx, byte [rsp + 0x50]
movzx ecx, word [rsp + 0x60]
movzx eax, word [rsp + 0x60]
add dx, ax
add dx, cx
mov word [rsp + 0x60], dx
jmp 0x180015e2a
mov rax, qword [0x1800534a0]
test rax, rax
movzx eax, word [rsp + 0x60]
sete bl
cmp ebx, eax
jae 0x180015e2a
mov ecx, dword [0x180053434]
movsx eax, byte [0x1800533d3]
not ecx
imul eax, ecx
mov dword [0x1800534f8], eax
mov eax, dword [rbp - 0x78]
jmp 0x180016054
mov r12d, 1
mov r11, qword [rbp - 0x18]
mov r10, qword [rbp - 0x20]
mov eax, dword [rbp - 0x7c]
test eax, eax
je 0x180015ea9
movzx eax, word [0x1800533d4]
test ax, ax
je 0x180015e71
mov eax, dword [rsp + 0x78]
add al, 0x4d
mov byte [0x1800533d6], al
movzx eax, word [0x1800534e0]
mov byte [0x1800533d3], al
jmp 0x180015f04
mov al, byte [0x1800533d2]
test al, al
jne 0x180015ea0
movzx eax, word [0x1800534e4]
test ax, ax
jne 0x180015ea0
cmp dword [0x1800534ec], ebx
je 0x180015f04
movsx r15d, word [0x1800534fc]
mov byte [0x1806795b0], sil
jmp 0x180015f04
movzx eax, word [0x1800534cc]
jmp 0x180015f04
cmp word [rsp + 0x5c], bx
jne 0x180015f04
movsxd rax, dword [0x1800534f8]
mov edx, ebx
cmp qword [0x1800534f0], rax
movsx eax, byte [0x1800533b6]
setne dl
cmp edx, eax
jl 0x180015f04
movzx eax, word [0x1800534e0]
mov rdx, qword [0x1800534d0]
sub rdx, rax
mov rax, qword [0x1800534d0]
sub rdx, rax
movsxd rax, r13d
mov qword [0x1800534d0], rdx
mov rcx, qword [0x1800534a0]
xor rcx, rax
mov qword [0x1800534a0], rcx
or r9, 0xffffffffffffffff
mov r8, r9
inc r8
cmp byte [r10 + r8], bl
jne 0x180015f0b
movsxd rcx, dword [0x18005350c]
mov rax, qword [0x1800534d0]
cmp rcx, rax
jl 0x180015f79
movsx ecx, word [0x1800534fc]
mov eax, dword [rsp + 0x78]
cmp ecx, eax
jbe 0x180015f62
movsx eax, byte [0x18005339f]
sub ax, 0x6c
mov word [0x1800534fc], ax
movzx edx, word [0x1800534e0]
movzx ecx, word [0x1800534b4]
imul edx, ecx
mov word [0x1800534e0], dx
jmp 0x180015f79
mov al, byte [0x1800533b7]
test al, al
jne 0x180015f79
mov eax, dword [0x1800534b4]
sar eax, 6
mov dword [rsp + 0x6c], eax
inc r9
cmp byte [r11 + r9], bl
jne 0x180015f79
cmp r9, r8
jbe 0x180015fc3
mov al, byte [rsp + 0x50]
movzx eax, byte [0x1800533d2]
movzx edx, word [0x1800534fc]
sub dx, ax
movzx eax, word [0x1800534fc]
add dx, ax
mov word [0x1800534fc], dx
mov al, byte [0x1800533d2]
sub al, r12b
mov byte [0x1800533d2], al
xor eax, eax
jmp 0x180016054
mov qword [rsp + 0x40], rbx
lea rcx, [0x1800339c4]
mov qword [rsp + 0x38], rbx
sub r10, r9
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea rdx, [r8 + r10]
mov r8, r11
call fcn.1800181fc
movsx rcx, byte [0x1800533b3]
test eax, eax
mov qword [rsp + 0x30], rcx
mov edi, ebx
sete dil
movsxd rax, r15d
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rsp + 0x20], rsi
mov r9d, 0x95
lea r8d, [rdx + 0x45]
call fcn.180016310
mov dword [rsp + 0x70], eax
mov ecx, dword [rsp + 0x70]
test ecx, ecx
jne 0x180016052
mov cl, byte [0x180583fa0]
mov eax, 0x7a1c
mov byte [0x18005339f], cl
mov rcx, qword [rbp - 0x70]
add cx, ax
mov word [0x1800534b0], cx
mov eax, edi
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.18002fd30
mov rbx, qword [rsp + 0x190]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret