Function at 0x18000bb20
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov qword [rsp + 0x58], 0x409f6f69
xor edi, edi
mov r12d, dword [0x18005a530]
mov r9d, 0x486917e6
mov eax, dword [0x18005a530]
mov r15d, 0xaed10cba
mov qword [rsp + 0x78], rax
mov r10d, 0xb4
mov rax, qword [0x18005a518]
mov byte [rbp + 0xa0], al
mov eax, 0x13
mov word [rsp + 0x40], ax
mov dword [rbp - 0x80], 0x9a4e2575
movsx rax, byte [0x1800100af]
mov byte [rbp + 0xa8], 0xd1
mov dword [rsp + 0x64], 0x33120c85
mov byte [rbp + 0x98], 0xd0
mov qword [rbp - 0x68], rax
movsx rax, byte [0x1800100af]
mov bl, byte [0x180058580]
mov qword [rbp - 0x70], rax
mov eax, 0x753
mov word [rsp + 0x48], ax
movzx eax, byte [0x180010083]
mov dword [rsp + 0x60], eax
movzx eax, word [0x180058580]
mov qword [rbp - 0x78], rax
mov al, byte [0x18005a4e0]
mov byte [rbp + 0x90], al
mov rax, qword [0x18005a518]
movzx r13d, byte [0x18005a520]
mov qword [rbp - 0x50], rax
movzx eax, word [0x180058564]
mov word [rsp + 0x68], ax
mov eax, dword [0x18005a538]
mov dword [rsp + 0x4c], eax
movzx eax, word [0x18005a4e0]
mov dword [rbp + 0xa0], 0xc5ea7442
mov word [rbp + 0xa0], ax
mov al, byte [0x18005a4f4]
mov byte [rbp + 0xa0], al
mov rax, qword [0x18005a500]
mov dword [rbp + 0xa0], 0x7d3cc062
mov eax, 0x24
mov word [rbp + 0xa0], ax
mov eax, 0xffffd15e
mov word [rbp + 0xa0], ax
mov qword [rbp + 0xa0], 0x88
movzx eax, byte [0x1800100ae]
cmp word [0x18005a4f4], ax
mov qword [rbp - 0x58], r9
mov qword [rbp - 0x48], r15
mov dword [rsp + 0x70], ebx
mov dword [rsp + 0x74], r10d
ja 0x18000bd44
movsx rcx, word [0x18005a508]
mov edx, edi
mov rax, qword [rsp + 0x78]
cmp rcx, rax
movzx eax, word [0x18005a508]
mov ecx, edi
setg dl
cmp ax, 0x5d
setg cl
cmp edx, ecx
jne 0x18000bce4
lea eax, [r13 - 0x60b7]
mov ecx, 0xfffff93e
mov dword [rbp - 0x80], eax
mov eax, dword [rsp + 0x64]
mov bl, byte [0x180010082]
mov eax, dword [rbp - 0x80]
xor ax, cx
mov dword [rsp + 0x70], ebx
mov word [0x18005a4f0], ax
jmp 0x18000bd7e
mov rcx, qword [0x180058588]
mov edx, edi
mov rax, qword [0x18005a500]
cmp rcx, rax
movsx ecx, word [0x180058564]
mov eax, dword [0x18005a530]
seta dl
add eax, ecx
cmp eax, edx
je 0x18000bd7e
movzx eax, bl
xor eax, 0xda02584e
mov dword [0x18005a524], eax
mov al, byte [0x1800100ae]
sub al, 0x42
mov byte [rbp + 0x98], al
movsx eax, word [0x18005a520]
mov edx, eax
lea ecx, [rax - 0x78]
movsx eax, cx
imul eax, edx
mov word [0x18005a520], ax
jmp 0x18000bd7e
test bl, bl
je 0x18000bd7e
mov rax, qword [rsp + 0x58]
sub rax, 0xb551
mov qword [rsp + 0x58], rax
movsx eax, word [0x180058564]
movzx r8d, byte [rbp + 0x90]
imul r8d, eax
movzx eax, word [0x180058564]
add r8w, ax
mov word [0x180058564], r8w
mov eax, dword [0x1800d12dc]
add r13b, r10b
mov dword [rsp + 0x50], eax
mov esi, 1
mov rax, qword [0x180058570]
movsx r14, byte [0x1800100a3]
shl rax, 7
mov qword [0x180058578], rax
mov eax, dword [rsp + 0x50]
add eax, 0x40f
mov byte [rsp + 0x44], r13b
mov dword [rsp + 0x6c], eax
mov rax, qword [0x180058588]
sub rax, rsi
mov qword [0x180058588], rax
mov byte [0x180010083], 0xf6
mov eax, dword [rsp + 0x50]
add eax, 0x47f
mov dword [rbp + 0xa0], eax
mov al, byte [0x1800100a3]
add al, 0x1f
mov qword [0x18005a500], 0x7e
mov byte [rbp + 0xa0], al
mov eax, dword [rsp + 0x50]
add eax, 0x566
cmp dword [0x180058590], edi
mov dword [rbp - 0x60], eax
je 0x18000c2e4
movzx edx, r13b
imul ecx, edx, 0x17e8
mov qword [0x18005a538], rcx
movsx rcx, word [0x180058564]
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
mov eax, 0x50a4
mov word [0x180058564], ax
movzx eax, word [rsp + 0x48]
mov ecx, dword [rsp + 0x60]
add cx, ax
mov word [rsp + 0x48], cx
movsx ecx, word [rsp + 0x40]
movzx eax, word [rsp + 0x40]
sub ecx, edx
and ax, cx
lea rdx, [r14 + 1]
mov word [rsp + 0x40], ax
movsx eax, byte [rbp + 0x98]
mov rcx, qword [rsp + 0x78]
sub eax, 0x6d
cdqe
add rcx, rax
mov qword [rsp + 0x78], rcx
movsx rax, word [0x180058564]
cmp rax, rdx
jne 0x18000bf8d
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [rbp + 0x98], al
mov r9d, 0xcb
mov ecx, dword [0x18005a524]
lea r11d, [rsi + 0x7e]
movzx eax, word [rsp + 0x48]
neg rcx
shl ax, 7
mov qword [0x18005a4e0], rcx
mov word [rsp + 0x40], ax
mov eax, 0xb4
movzx ecx, word [0x18005a508]
sub cx, ax
movzx eax, word [0x18005a508]
add cx, ax
movsx eax, word [rsp + 0x68]
imul r10d, eax, 0x97
mov word [0x18005a508], cx
movzx edx, byte [rbp + 0x90]
movsx eax, byte [rbp + 0x98]
mov ecx, dword [rsp + 0x64]
sub edx, eax
mov rax, qword [0x18005a518]
not ecx
add rax, rcx
movsxd r8, edx
movzx ecx, byte [0x1800100ae]
mov edx, edi
imul rax, r8
test rax, rax
movsx eax, byte [0x1800100a3]
sete dl
and ecx, r10d
sub ax, r11w
add ecx, edx
and word [0x18005a4f4], ax
mov dword [rsp + 0x64], ecx
sub r9, rsi
jne 0x18000bef9
mov rax, qword [0x180058578]
cmp rax, rsi
jne 0x18000bf93
mov al, byte [rbp + 0x90]
cmp r13b, al
je 0x18000bf93
movzx eax, word [0x18005a4f0]
movzx ecx, word [0x18005a50c]
add cx, cx
add ax, cx
mov word [0x18005a50c], ax
mov eax, 0x19c1
mov word [rsp + 0x48], ax
jmp 0x18000bf93
mov r11d, 0x7f
mov eax, 0x50a4
mov rcx, rdi
mov word [0x180058564], ax
mov r8, rdi
mov al, byte [rbp + 0x98]
mov eax, 0xcba
mov word [0x18005a4f4], ax
imul eax, dword [0x18005a538], 0x33afca
mov dword [0x18005a524], eax
mov rax, qword [0x18005a4d8]
add al, al
mov byte [0x1800100af], al
mov eax, dword [0x1800d12dc]
mov dword [rsp + 0x50], eax
mov rdx, qword [0x180058588]
mov eax, dword [rsp + 0x4c]
test eax, eax
movsx eax, word [0x18005a528]
sete cl
cmp rdx, r11
sete r8b
sub r8, rcx
imul ecx, eax, 0x76cf7100
mov rax, qword [0x180058578]
movsxd rdx, ecx
movsx rcx, byte [rbp + 0xa0]
add rdx, r8
sub rdx, rax
mov rax, rdi
add rcx, rdx
mov rcx, qword [0x18005a4e8]
sete al
mov qword [0x180058578], rax
movzx eax, word [0x18005a4f4]
imul rcx, rax
movzx eax, word [0x18005a508]
sub r13b, al
mov qword [0x18005a4e8], rcx
mov eax, dword [rsp + 0x50]
add eax, 0x504
mov byte [rsp + 0x44], r13b
mov dword [rbp - 0x60], eax
movsx ecx, word [0x18005a4f0]
movsx eax, byte [0x1800100a3]
not ecx
not eax
cmp eax, ecx
jle 0x18000c0ad
movzx eax, word [0x18000f438]
lea rcx, [rbp - 8]
vmovups xmm0, xmmword [str.Could_not_convert]
mov word [rbp + 8], ax
mov al, byte [0x18000f43a]
mov byte [rbp + 0xa], al
vmovups xmmword [rbp - 8], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd r9, eax
mov qword [rbp - 0x58], r9
jmp 0x18000c0d4
cmp qword [0x18005a538], rdi
mov rcx, rdi
mov rax, qword [0x180058588]
sete cl
cmp rax, rcx
jg 0x18000c0d4
mov byte [0x1800100a3], 0xa6
mov byte [rbp + 0x90], 0xed
mov eax, dword [rsp + 0x50]
add eax, 0x537
mov dword [rbp - 0x60], eax
mov qword [rsp + 0x78], 2
movsx eax, byte [rbp + 0xa8]
mov edx, dword [rsp + 0x60]
imul edx, eax
mov al, byte [rbp + 0xa8]
sub al, dl
mov byte [rbp + 0xa8], al
mov rax, qword [rsp + 0x78]
dec rax
cmp rax, rsi
jne 0x18000c13d
mov r15d, dword [0x18005a524]
movabs rax, 0x7fdfd41fa33b2
add r15, rax
mov ecx, 0x9e
mov rax, qword [rbp - 0x70]
sub cl, al
mov qword [rbp - 0x48], r15
add r13b, cl
mov byte [rsp + 0x44], r13b
mov eax, dword [rsp + 0x50]
movzx ecx, byte [0x1800100a2]
add eax, 0x489
mov dword [rbp - 0x7c], eax
call qword [sym.imp.USER32.dll_OpenIcon]
mov byte [0x1800100af], al
mov eax, dword [rbp - 0x7c]
mov edx, dword [rbp - 0x60]
imul ecx, eax, 0x2c6
mov eax, dword [rbp - 0x7c]
add edx, ecx
imul ecx, eax, 0x22f
cmp edx, ecx
je 0x18000c2e4
mov rax, qword [rbp - 0x68]
cmp word [rsp + 0x68], di
jne 0x18000c18a
mov rax, qword [rbp - 0x78]
mov rcx, qword [rbp - 0x70]
lea r9, [r14 + 0xec]
mov dword [0x18005a4f8], eax
mov rax, qword [rsp + 0x58]
movsx edx, al
movsx eax, cl
imul eax, edx
movsx eax, al
imul ecx, eax, 0xffffffb2
mov byte [0x1800100af], cl
movzx ecx, word [0x180058580]
movzx eax, cx
mov r8d, 0x176
movsx ecx, word [0x180058564]
mov dword [0x1804f54cc], eax
mov eax, dword [0x18005a524]
imul eax, ecx
mov ecx, 7
mov dword [0x18005a52c], 0x8ee41b8c
sub cl, r14b
imul eax, eax, 0xe471
mov dword [0x18005a524], eax
mov al, byte [rbp + 0x90]
add cl, al
mov byte [rbp + 0x90], cl
mov rax, qword [0x180058588]
mov ecx, dword [0x18005a524]
not rax
movzx edx, word [0x18005a4f4]
add rdx, rax
imul rcx, rdx
test rcx, rcx
sete byte [0x1800100ae]
movsxd rax, dword [rsp + 0x60]
mov rdx, qword [0x180058570]
imul rdx, rax
mov rax, qword [0x180058570]
add rax, rdx
mov qword [0x180058570], rax
mov eax, 0x48c5
movsx ecx, byte [0x1800100af]
add cx, ax
mov word [0x18005a4f0], cx
sub r8, rsi
jne 0x18000c207
movzx eax, word [0x18005a50c]
cmp rax, r9
jne 0x18000c2a6
movsx ecx, word [0x18005a4f0]
movzx eax, r12w
add ecx, eax
cmp ecx, esi
jne 0x18000c2a6
movzx ecx, word [0x180058580]
mov edx, 0x6337
movzx eax, cx
and ax, dx
mov word [0x18005a520], ax
jmp 0x18000c1bc
mov rcx, qword [rbp - 0x78]
mov qword [0x1804f1420], rcx
mov ecx, dword [0x1800d12dc]
mov dword [rsp + 0x64], ecx
movsx rcx, byte [0x1800100af]
mov r8, qword [0x180058570]
xor r8, rcx
movsxd rcx, dword [0x18005a4f8]
imul rcx, r8
mov qword [0x18005a500], rcx
jmp 0x18000dbf5
movzx eax, word [0x180058564]
mov rcx, qword [0x18005a518]
movzx eax, bl
cmp rcx, rax
jae 0x18000c326
movzx eax, word [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
add rcx, rax
movzx eax, word [rsp + 0x48]
shr ax, cl
mov word [rsp + 0x48], ax
mov rax, qword [0x18005a538]
add rax, 0xffffffffffffa6ce
jmp 0x18000c3c0
mov eax, dword [0x18005a524]
test eax, eax
je 0x18000c39a
mov al, byte [0x180010083]
test al, al
jne 0x18000c39a
cmp qword [0x18005a510], rdi
je 0x18000c34f
mov al, byte [0x180010083]
mov edx, esi
test al, al
jne 0x18000c351
mov edx, edi
mov eax, dword [0x18005a4fc]
mov ecx, edi
cmp eax, 0x635a
setae cl
cmp edx, ecx
ja 0x18000c3c7
movsx ecx, byte [rbp + 0xa8]
mov eax, dword [rsp + 0x60]
sub ecx, eax
mov eax, dword [rsp + 0x60]
add eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [0x18005a530]
test eax, eax
movsx ecx, word [0x18005a520]
cmovne ecx, dword [0x18005a4f8]
mov dword [0x18005a4fc], ecx
jmp 0x18000c3c7
mov eax, dword [rsp + 0x4c]
add eax, esi
mov dword [rsp + 0x4c], eax
mov al, byte [0x18005a4e0]
sub al, 0x6d
mov byte [rbp + 0xa8], al
movsx eax, byte [0x1800100af]
add eax, 0x2461
cdqe
mov qword [0x18005a4e0], rax
mov rbx, qword gs:[0x60]
mov rcx, qword [0x18005a4d8]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov r13, qword [rbx + 0x18]
movabs rcx, 0x8138fec9caaae
mov word [0x180058580], ax
mov rbx, rdi
mov rax, qword [rbp - 0x70]
sub rax, rcx
mov qword [rbp - 0x40], rbx
mov qword [0x18005a500], rax
mov al, byte [0x180010082]
xor al, 0x44
sub byte [rsp + 0x70], al
movzx eax, word [rsp + 0x48]
call fcn.18000a924
movsx ecx, al
mov edx, edi
cmp ecx, 0x36
mov word [0x18005a528], cx
mov eax, edi
setne dl
test cx, cx
setne al
cmp eax, edx
jae 0x18000c48c
mov qword [0x18005a500], 0x985ddc
mov eax, dword [rbp - 0x80]
test eax, eax
mov eax, dword [0x18005a4f8]
mov qword [rbp - 0x68], rsi
jne 0x18000c45b
mov eax, dword [rsp + 0x4c]
mov word [0x180058564], ax
mov al, byte [rbp + 0xa0]
and al, sil
mov byte [rbp + 0xa0], al
movsx rax, word [0x18005a528]
mov rcx, qword [0x18005a518]
add rcx, rax
mov qword [0x18005a518], rcx
jmp 0x18000c4bd
mov al, byte [rbp + 0x98]
mov r15d, 0xbfdeb770
movsx rax, byte [rbp + 0x98]
mov rdx, qword [0x18005a4e8]
sub rdx, rax
mov word [0x18042efdc], r14w
or qword [0x18005a4e8], rdx
mov qword [rbp - 0x48], r15
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x38], rdi
call fcn.180009eb4
cmp qword [0x18005a510], rdi
movsxd rcx, eax
mov qword [0x18005a4e8], rcx
jne 0x18000c549
movsx ecx, byte [rbp + 0x98]
mov edx, edi
imul ecx, dword [0x18005a4f8]
mov r9d, edi
mov eax, dword [0x18005a524]
movsx r8d, byte [rbp + 0x98]
mov qword [rbp - 0x68], 2
test ecx, ecx
movzx ecx, byte [0x1800100a2]
sete dl
cmp ecx, eax
mov ecx, edi
sete r9b
imul r8d, dword [0x18005a52c]
add r9d, edx
mov edx, edi
cmp word [rsp + 0x68], di
movzx eax, r9b
sete dl
cmp r8d, edx
mov r8, qword [rbp - 0x50]
cmove ecx, eax
mov byte [0x1800100af], cl
jmp 0x18000c5d1
mov al, byte [rbp + 0x90]
mov ecx, edi
mov r8, qword [rbp - 0x50]
test al, al
mov eax, edi
sete cl
test r8d, r8d
sete al
cmp ecx, eax
jbe 0x18000c591
movzx eax, byte [rbp + 0x90]
mov ecx, dword [0x18005a4fc]
add cx, ax
mov eax, 0xa8e0
mov word [0x180058580], cx
movzx ecx, word [rsp + 0x68]
imul ecx, eax
mov word [rsp + 0x48], cx
jmp 0x18000c5d1
mov rax, qword [0x18005a4d8]
mov rcx, rdi
mov eax, dword [rsp + 0x4c]
test eax, eax
mov rax, qword [0x180058578]
sete cl
add rax, rcx
cmp byte [0x1800100a2], dil
mov qword [0x180058578], rax
mov rax, qword [0x18005a4e8]
jne 0x18000c5cd
movsx rax, word [0x180058564]
mov dword [rsp + 0x60], eax
mov rdx, qword [r13 + 0x10]
mov rax, qword [rdx + 0x30]
test rax, rax
je 0x18000c631
mov r9d, 0x20202020
mov rsi, rax
mov qword [rbp - 0x38], rax
movsxd rax, dword [rax + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x18000c61c
lea rbx, [rsi + rcx]
mov ecx, dword [rbx + 0xc]
mov eax, dword [rcx + rsi]
or eax, r9d
cmp eax, 0x6c64746e
jne 0x18000c61c
mov eax, dword [rcx + rsi + 4]
or eax, r9d
cmp eax, 0x6c642e6c
je 0x18000c628
mov rdx, qword [rdx]
mov rax, qword [rdx + 0x30]
test rax, rax
jne 0x18000c5e4
mov qword [rbp - 0x40], rbx
mov esi, 1
movsx eax, word [0x180058564]
mov edx, dword [0x18005a524]
imul edx, eax
mov eax, dword [0x18005a524]
add eax, edx
mov dword [0x18005a524], eax
mov edx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x6c]
imul edx, eax
mov eax, dword [rsp + 0x6c]
imul ecx, eax
cmp edx, ecx
jne 0x18000d08b
movzx eax, byte [0x1800100a2]
cmp ax, word [0x18005a50c]
jb 0x18000c6a5
mov ecx, dword [0x18005a524]
mov eax, dword [0x18005a524]
imul ecx, r8d
sub eax, ecx
mov dword [0x18005a524], eax
mov eax, dword [rsp + 0x4c]
add r15, rax
mov qword [rbp - 0x48], r15
jmp 0x18000c7c6
mov eax, dword [0x18005a52c]
not eax
test eax, eax
je 0x18000c6e2
movsx rcx, byte [0x1800100af]
mov rax, qword [0x18005a500]
add ax, cx
mov word [0x18005a508], ax
mov eax, dword [rsp + 0x60]
movzx ecx, al
imul eax, ecx, 0xfb
mov byte [rbp + 0x90], al
jmp 0x18000c7c6
mov al, byte [0x1800100af]
cmp al, 0x7b
je 0x18000c7a2
movsx ecx, word [0x18005a508]
mov r8, rdi
movzx eax, byte [0x1800100a2]
movzx r9d, byte [rsp + 0x44]
imul eax, ecx
test eax, eax
mov rax, qword [0x18005a4d8]
movsx ecx, word [0x18005a4f8]
movsx edx, ax
sete r8b
imul edx, ecx
mov ecx, r9d
sub dx, r8w
mov r8d, edi
mov word [0x18005a4f0], dx
movsx rax, word [0x18005a508]
mov rdx, qword [rsp + 0x78]
add rdx, rax
mov eax, dword [rbp - 0x80]
sub ecx, eax
movsxd rax, ecx
imul rax, rdx
movzx edx, byte [0x180010083]
mov qword [0x18005a510], rax
mov rax, r14
not rax
imul rdx, rax
movsx eax, byte [0x1800100a3]
add eax, 0x9e
movsxd rcx, eax
mov rax, qword [0x18005a518]
cmp rdx, rcx
sete r8b
sub r8w, r9w
sub r8w, ax
mov eax, dword [rsp + 0x4c]
not ax
add ax, r8w
mov word [0x18005a4f4], ax
jmp 0x18000c7c6
movzx eax, word [0x180058564]
test ax, ax
je 0x18000c7c6
mov al, byte [0x18005a538]
sub al, 0x5c
add byte [rsp + 0x44], al
mov al, byte [0x1800d12dc]
mov byte [rbp + 0xa8], al
mov dword [0x18005a524], 0xedc0
lea rdx, [r14 + 0xedc0]
mov eax, dword [0x18005a524]
cmp rax, rdx
jne 0x18000c8b5
movsx rax, word [0x18005a528]
movabs rcx, 0xa8d841fa27b62
add rcx, r14
cmp rax, rcx
jne 0x18000c8b5
call fcn.18000a308
movsx rcx, al
mov qword [rbp - 0x78], rcx
mov rax, qword [rbp - 0x78]
test rax, rax
jne 0x18000c8b5
movsx ecx, word [0x18005a4f0]
mov eax, dword [0x18005a524]
cmp eax, ecx
jae 0x18000c858
movsx rcx, word [0x180058564]
mov rax, qword [rsp + 0x78]
sub rax, rcx
mov ecx, 0x75cb
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x58]
add ax, cx
mov word [rsp + 0x48], ax
jmp 0x18000c8b5
test r12w, r12w
je 0x18000c8b5
mov ecx, dword [0x18005a524]
mov eax, dword [0x18005a524]
or ecx, eax
movsx eax, word [0x18005a528]
inc eax
add ecx, eax
mov eax, edi
sete al
xor ax, word [0x18005a4f4]
mov word [rsp + 0x40], ax
mov rax, qword [0x180058588]
sub rax, rsi
mov qword [0x180058588], rax
mov rdx, qword [0x18005a4d8]
movsx rax, byte [rbp + 0xa8]
not rdx
sub rdx, rax
mov qword [0x18005a510], rdx
mov dword [0x18005a524], 0xedc0
mov rax, qword [rsp + 0x78]
movzx r8d, word [0x1804f54fc]
imul rcx, rax, 0x3b1e
mov al, byte [0x180446a00]
or byte [0x1800100a2], al
movzx eax, word [0x180058580]
mov qword [0x18005a510], rcx
movsxd rcx, dword [rbp - 0x50]
sub rcx, rax
mov rax, qword [0x180058588]
add rax, rcx
mov eax, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x58]
sete dl
xor al, r12b
add cl, al
mov eax, 0xffff9c44
add cl, sil
cwde
xor cl, dl
mov byte [rsp + 0x74], cl
movzx ecx, byte [0x180010083]
imul eax, ecx
movsx ecx, word [0x18005a520]
cwde
imul ecx, eax
mov word [0x18005a520], cx
test rbx, rbx
jne 0x18000d08b
mov rdx, qword [rbp - 0x70]
mov rcx, rdi
mov eax, dword [0x18005a4f8]
xor rdx, r8
imul eax, dword [rbp - 0x58]
mov r13d, r8d
mov qword [rbp - 0x60], r8
mov dword [0x18005a4f8], eax
mov al, byte [rbp + 0xa8]
vmovups xmm0, xmmword [str.iso_8859_13]
vmovsd xmm1, qword [0x18000f450]
test al, al
mov eax, dword [0x1800d12dc]
vmovups xmmword [rbp - 0x20], xmm0
sete cl
imul rcx, rdx
vmovsd qword [rbp - 0x10], xmm1
not rcx
mov qword [0x18005a4e0], rcx
lea rcx, [rbp - 0x20]
mov qword [0x180058588], rax
mov eax, 0xec
mov word [0x18005a528], ax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [rbp + 0xa0], al
movsx rax, word [0x18005a528]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov eax, dword [0x18005a52c]
cmp rax, rcx
jne 0x18000cc04
movsx rbx, word [rsp + 0x68]
mov r15, qword [rbp - 0x50]
movzx r13d, r12w
movzx eax, word [0x1800d12dc]
mov r8d, 0xe36
mov r9, qword [rbp - 0x68]
mov word [0x18005a520], ax
movzx eax, byte [0x1800100a2]
xor eax, 0xf0
movsx edx, r12b
mov dword [0x18005a4f8], eax
mov eax, dword [rbp - 0x80]
sub eax, 0xb2
movsxd r14, eax
movsx eax, byte [0x1800100af]
imul edx, eax
mov al, byte [0x1800100af]
add dl, al
mov byte [0x1800100af], dl
mov edx, edi
movsx ecx, byte [0x1800100af]
mov rax, qword [rsp + 0x78]
not ecx
add ecx, dword [0x18005a52c]
mov ecx, edi
sete dl
add rax, 0x9abb
sete cl
xor cx, dx
mov word [0x18005a4f4], cx
mov cl, byte [0x180010083]
mov edx, edi
mov al, byte [rbp + 0x90]
cmp al, cl
mov al, byte [rbp + 0x90]
mov ecx, edi
setb dl
cmp al, 6
setb cl
cmp edx, ecx
ja 0x18000caf6
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18000cac0
movzx eax, byte [0x1800100a3]
movzx ecx, byte [0x1800100a2]
imul ecx, eax
movsxd rax, dword [rbp - 0x80]
mov qword [0x180554838], rax
mov byte [0x1800100a2], cl
jmp 0x18000cb41
mov rcx, qword [rbp - 0x78]
mov al, byte [0x180010083]
cmp rbx, rcx
jge 0x18000cb41
mov rax, qword [rsp + 0x58]
test r15d, r15d
sete cl
sub cl, r14b
not cl
xor cl, al
mov eax, dword [0x18005a530]
not cl
mov qword [0x18005a500], rax
mov byte [rsp + 0x74], cl
jmp 0x18000cb41
movzx eax, word [0x18005a508]
test ax, ax
jne 0x18000cb0c
mov eax, dword [rsp + 0x4c]
mov edx, edi
test eax, eax
je 0x18000cb0e
mov edx, esi
movsx rcx, word [rsp + 0x40]
mov eax, edi
cmp rcx, qword [0x18005a510]
sete al
cmp edx, eax
jae 0x18000cb41
movsx ecx, word [rsp + 0x40]
mov eax, dword [0x18005a4fc]
sub ecx, 0x9c
add eax, ecx
mov qword [rbp - 0x58], r9
mov dword [0x18005a4fc], eax
sub r8, rsi
jne 0x18000ca6c
mov rcx, qword [rsp + 0x78]
mov rax, qword [0x18005a518]
add rcx, 0x673d8225
cmp rax, rcx
jne 0x18000cbf8
movsx rdx, word [rsp + 0x40]
lea r15d, [r13 - 0x79f4b50b]
movsx rax, word [rsp + 0x40]
lea rcx, [rbp - 0x20]
sub rdx, rax
mov qword [rbp - 0x68], 2
mov rax, qword [rsp + 0x78]
vmovups xmm0, xmmword [str.iso_8859_13]
vmovsd xmm1, qword [0x18000f450]
add qword [0x18005a4e0], rsi
sub dx, ax
mov eax, 0xec
mov word [rsp + 0x40], dx
mov byte [rbp + 0xa8], 2
mov word [0x18005a528], ax
mov qword [rbp - 0x50], r15
vmovups xmmword [rbp - 0x20], xmm0
vmovsd qword [rbp - 0x10], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [rbp + 0xa0], al
movsx rax, word [0x18005a528]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov eax, dword [0x18005a52c]
cmp rax, rcx
je 0x18000c9ed
mov r15, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x40]
mov r13, qword [rbp - 0x60]
movsx rcx, word [0x18005a520]
mov edx, edi
mov rax, qword [rsp + 0x58]
mov r9, qword [rbp - 0x68]
cmp rax, rcx
mov rax, qword [rsp + 0x58]
mov ecx, edi
seta dl
cmp rax, 0x25
seta cl
cmp edx, ecx
jne 0x18000cc61
movsx ecx, word [0x18005a4f8]
mov eax, 0xffffa0c4
and qword [0x18005a4e8], r9
cwde
imul ecx, eax
movabs rax, 0x10951a0e9fa64
mov word [0x18005a4f0], cx
mov r15, qword [0x180058570]
add r15, rax
mov eax, dword [0x1800d12dc]
mov r8d, edi
mov dword [rsp + 0x50], eax
mov edx, edi
mov cl, byte [0x1800100ae]
mov al, byte [rbp + 0x90]
cmp al, cl
mov cl, byte [rbp + 0x98]
mov al, byte [rbp + 0xa0]
setbe r8b
cmp cl, al
sete dl
cmp r8d, edx
jne 0x18000cca9
mov eax, dword [rsp + 0x64]
mov r14, rsi
imul eax, eax, 0x34
mov qword [0x18005a4e0], rax
mov eax, dword [rsp + 0x50]
mov ecx, 0xd3
add eax, 0x3bb
mov dword [rbp + 0x90], eax
mov rax, qword [rbp - 0x78]
sub ecx, esi
sub al, 0x4f
mov byte [0x180575d14], r9b
mov byte [rbp + 0xa8], al
mov eax, 0x249f
mov word [0x18005a508], ax
mov al, byte [rbp + 0x98]
add al, sil
mov byte [rbp + 0x98], al
test ecx, ecx
jg 0x18000ccbd
mov eax, dword [rsp + 0x50]
mov ecx, edi
add eax, 0x580
mov r8d, 0x51
mov dword [rbp + 0x90], eax
mov eax, dword [rsp + 0x50]
add eax, 0x68f
mov dword [rbp - 0x60], eax
movzx eax, byte [rsp + 0x44]
cmp word [0x18005a520], ax
mov eax, edi
setne cl
cmp word [0x18005a520], r8w
setne al
cmp ecx, eax
jb 0x18000cd5c
mov eax, 0xec
movzx ecx, r15w
sub cx, ax
movzx eax, word [0x18005a508]
or cx, ax
mov qword [0x18005a538], 2
mov word [0x18005a508], cx
mov ecx, dword [rbp + 0x90]
mov eax, dword [rbp + 0x90]
sub ecx, eax
mov eax, dword [rbp + 0x90]
imul ecx, ecx, 0x296
cmp ecx, eax
je 0x18000d08b
mov rax, qword [0x18005a500]
mov r12, qword [rbp - 0x58]
mov ebx, dword [rsp + 0x70]
movzx ecx, al
imul eax, ecx, 0xea
mov byte [0x1800100a3], r12b
mov byte [rbp + 0x90], al
mov al, byte [rbp + 0xa8]
mov byte [rbp + 0x98], al
movsx rax, word [0x18005a508]
mov byte [0x1800100a3], 0xc0
cmp rax, r9
jbe 0x18000cde9
test bl, bl
jne 0x18000ce4d
lea rax, [r15 - 0x23]
mov qword [0x18005a4e8], rax
mov al, byte [rbp + 0xa0]
sub al, r12b
add al, 0x23
mov byte [rbp + 0xa0], al
jmp 0x18000ce4d
imul eax, dword [rbp - 0x50], 0xc9
mov rdx, rdi
mov dword [0x18005a524], eax
movsx ecx, word [0x18005a4f0]
mov eax, dword [0x18005a530]
not eax
test ecx, eax
movsx rcx, word [0x18005a508]
mov rax, rdi
sete dl
test r15, r15
sete al
xor rax, qword [0x18005a4e8]
sub rdx, rax
movsx rax, word [0x18005a528]
or rax, rcx
imul rax, rdx
mov qword [0x18005a510], rax
lea rax, [r12 - 0xa2]
mov qword [0x18005a4e8], rax
mov rcx, qword [rsp + 0x58]
movsx rax, byte [0x1800100a3]
add rcx, 0xedc0
cmp rax, rcx
jne 0x18000ceb2
mov rax, qword [0x180058588]
lea rcx, [r14 + 0xd5]
cmp rax, rcx
jne 0x18000ceb2
mov rax, qword [rbp - 0x70]
mov rcx, qword [0x180058578]
sub al, 9
mov byte [0x1800100a3], al
mov rax, qword [0x180058578]
sub rcx, rax
mov rax, qword [0x180058588]
sub rcx, rax
mov qword [0x180058578], rcx
movsx eax, word [rsp + 0x40]
mov dword [0x180576500], eax
movsx rcx, byte [rbp + 0xa0]
mov rax, qword [rsp + 0x58]
and rax, rcx
mov byte [0x1800100a3], 0xc0
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
movsx ecx, ax
movsx eax, word [0x18005a528]
imul eax, ecx
movsx rcx, byte [0x1800100af]
sub rcx, 0x2a088544
mov word [0x18005a528], ax
mov qword [rsp + 0x58], rcx
movzx eax, word [rsp + 0x40]
call fcn.18000ac04
mov byte [0x180010083], al
mov al, byte [0x180010083]
test al, al
je 0x18000cfd0
movzx eax, word [0x18005a4f4]
mov ecx, edi
cmp r15, rax
mov eax, edi
setg cl
cmp r15, 0x4e
setg al
cmp ecx, eax
jbe 0x18000cf6c
movabs rax, 0xdca15462c5c1a
imul r14, rax
mov eax, dword [0x1800d12dc]
mov qword [0x18005a4e8], r14
mov dword [0x18005a524], eax
movsx eax, word [0x18005a4f0]
movzx edx, byte [0x1800100ae]
imul edx, eax
jmp 0x18000d07d
test r12, r12
je 0x18000cf87
mov qword [rsp + 0x58], 0x35e95b9f
mov dword [rsp + 0x4c], 0x51ff
jmp 0x18000d084
movsxd rcx, dword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
cmp rcx, rax
ja 0x18000cfae
movzx eax, byte [0x1800100a2]
not eax
cdqe
cmp rax, qword [0x18005a4e0]
jb 0x18000d084
sub r14b, 0x5b
mov byte [0x180010082], r14b
mov rax, qword [0x18005a4d8]
add eax, 0x1d372064
mov dword [0x18005a52c], eax
jmp 0x18000d084
test bl, bl
je 0x18000cfee
mov rax, qword [0x180058570]
add rax, r13
mov qword [0x180058570], rax
mov eax, dword [rsp + 0x60]
jmp 0x18000d084
cmp qword [0x18005a4e8], rdi
je 0x18000d03f
mov rax, qword [0x18005a518]
movsxd rcx, dword [0x18005a4f8]
imul rcx, qword [0x18005a510]
sub al, cl
mov byte [0x180010082], al
movzx eax, byte [rbp + 0x90]
mov word [0x18005a520], ax
movzx eax, word [0x180058580]
imul ecx, eax, 0x787b820a
movzx eax, word [rsp + 0x40]
add ax, cx
mov word [rsp + 0x40], ax
jmp 0x18000d084
cmp dword [0x18005a4f8], edi
je 0x18000d084
mov eax, dword [0x18005a530]
sub rsi, rax
mov rax, qword [0x18005a4e0]
imul rax, rsi
mov qword [0x18005a4e0], rax
movsx eax, word [0x18005a4f0]
movsx edx, byte [rbp + 0xa8]
imul edx, eax
movzx eax, word [0x18005a4f0]
and dx, ax
mov word [0x18005a4f0], dx
xor eax, eax
jmp 0x18000dbf7
mov al, byte [0x1800d12dc]
movzx r13d, byte [rsp + 0x74]
mov byte [0x180010082], al
movzx eax, word [0x18005a508]
and al, 0xcc
mov byte [rbp + 0x90], al
lea r10d, [r13 - 0xabcfa3c]
mov eax, dword [rbx + 0x18]
mov dword [rbp - 0x7c], eax
mov dword [rsp + 0x6c], r10d
call fcn.18000ac04
mov qword [0x180058570], rax
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x18000d0da
mov al, byte [0x180010083]
movzx eax, byte [0x1800100ae]
mov ecx, 0x4c4d
mov r12d, dword [rsp + 0x70]
mov word [0x18005a50c], ax
movzx eax, r14w
sub ax, cx
mov word [rsp + 0x48], ax
mov eax, dword [rbx + 0x1c]
add rax, qword [rbp - 0x38]
mov qword [rbp - 0x28], rax
imul rax, r14, 0x20f9216a
movzx r14d, r12b
mov qword [0x180058570], rax
mov eax, dword [rbx + 0x20]
mov ebx, 0x2e0
add rax, qword [rbp - 0x38]
mov qword [rbp - 0x48], rax
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x18005a4fc], eax
sub rbx, rsi
jne 0x18000d12b
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 0x24]
add rax, qword [rbp - 0x38]
mov qword [rbp - 0x30], rax
mov rax, qword [0x180058588]
xor rax, 0xb3e
sub qword [0x18005a538], rax
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x18000d175
movsx ecx, byte [rbp + 0xa0]
jmp 0x18000d17c
movsx ecx, byte [0x1800100a3]
movzx eax, word [0x18005a508]
not cl
movzx edx, byte [0x1800100a2]
add cl, al
add cl, byte [rsp + 0x68]
mov r14d, edi
mov byte [rbp + 0xa0], cl
test dl, dl
je 0x18000d30c
cmp rdx, qword [rbp - 0x68]
mov ecx, edi
mov eax, edi
seta cl
cmp dl, 0x37
seta al
cmp ecx, eax
jne 0x18000d2a3
mov rax, qword [0x180058578]
mov r8d, edi
mov rcx, qword [rsp + 0x78]
test rax, rax
movsxd rax, dword [0x18005a4f8]
movzx edx, byte [0x1800100a2]
sete r8b
add rcx, rax
mov rax, rdi
cmp edx, r8d
mov r8, rdi
cmove rax, rcx
mov rcx, qword [0x18005a4d8]
movsx rdx, byte [rbp + 0x98]
test rax, rax
not rcx
sete r8b
add rdx, rcx
xor rdx, r8
mov ecx, 0xc2
not rdx
mov qword [rbp - 0x78], rdx
mov al, byte [rbp + 0xa8]
sar al, 6
mov byte [rbp + 0x98], al
movzx eax, word [0x18005a50c]
sub ax, cx
mov word [0x18005a520], ax
mov r10d, dword [rsp + 0x74]
mov edx, dword [rsp + 0x6c]
lea r13, [0x180058590]
mov eax, dword [0x18005a4fc]
add edx, eax
mov eax, dword [0x1800d12dc]
mov dword [rsp + 0x50], eax
mov rax, qword [0x180058570]
mov eax, dword [rsp + 0x50]
add eax, 0x4db
mov dword [rsp + 0x6c], edx
mov dword [rsp + 0x68], eax
call fcn.18000b10c
mov word [0x180058564], ax
movzx eax, word [0x180058564]
test ax, ax
je 0x18000d34c
movsx ecx, word [0x18005a4f0]
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x18000d3c5
mov al, byte [rbp + 0x90]
mov edx, edi
movsx ecx, word [0x180058564]
test al, al
mov r10d, dword [rsp + 0x74]
mov eax, edi
sete dl
cmp ecx, edx
setl al
cmp eax, r13d
jbe 0x18000d240
movzx eax, word [rsp + 0x48]
lea edx, [r13 - 0xabcfa3c]
mov ecx, dword [rsp + 0x4c]
add cl, al
mov eax, 0x968680ac
mov byte [rbp + 0xa0], cl
mov qword [0x180058570], rax
movzx ecx, byte [rbp + 0x90]
mov al, byte [rbp + 0x90]
add ecx, edx
or al, cl
mov byte [rbp + 0x90], al
jmp 0x18000d244
movsx eax, byte [rbp + 0x98]
imul eax, eax, 0x73bab745
test eax, eax
jne 0x18000d23b
movzx ecx, word [0x18005a4e0]
mov eax, 0x3850
imul ecx, eax
mov r10b, 5
sub word [0x18005a520], r15w
mov dword [rsp + 0x74], r10d
mov word [0x18005a4f4], cx
jmp 0x18000d240
movsx ecx, byte [0x1800100af]
not ecx
cmp ecx, esi
jge 0x18000d3c5
mov rax, qword [rbp - 0x78]
add rax, rsi
mov qword [rbp - 0x78], rax
movsx ecx, byte [0x1800100af]
mov r8, qword [0x180058578]
movzx eax, byte [0x1800100a2]
add eax, ecx
movsxd rcx, eax
test r10b, r10b
mov rax, rdi
cmove rax, rcx
movsx rcx, byte [rbp + 0xa0]
movzx edx, byte [0x180010083]
sub rcx, qword [0x18005a4e8]
imul r8, rax
and rdx, rcx
mov rax, rdi
test r8, r8
not rdx
cmove rax, rdx
mov qword [0x180058588], rax
mov eax, dword [0x1800d12dc]
mov dword [0x18005a52c], eax
mov eax, dword [rsp + 0x50]
add eax, 0x457
mov dword [rbp - 0x60], eax
mov rax, qword [0x18005a4e0]
mov qword [0x1804c8d70], rax
imul rax, qword [0x18005a510], 0x614
mov qword [0x18005a4e8], rax
mov eax, dword [rsp + 0x50]
add eax, 0x3bf
mov dword [rsp + 0x50], eax
movsx rax, byte [rbp + 0x98]
mov rdx, qword [0x18005a4d8]
xor rdx, rax
movzx eax, byte [0x180010083]
imul eax, eax, 0x3c
sub dl, al
mov byte [0x180010083], dl
mov ecx, dword [rbp - 0x60]
mov eax, dword [rsp + 0x68]
imul ecx, eax
mov eax, dword [rsp + 0x68]
add eax, ecx
mov ecx, dword [rsp + 0x68]
add ecx, eax
mov eax, dword [rsp + 0x68]
cmp ecx, eax
je 0x18000dae3
mov rbx, qword [rbp - 0x58]
mov word [0x18005a508], si
movzx eax, byte [rbp + 0x90]
add rax, rsi
mov qword [0x18005a4e8], rdi
imul rbx, rax
mov eax, 0x28
mov word [0x18049272a], ax
movsx eax, word [0x18005a508]
mov qword [rbp - 0x58], rbx
test eax, eax
je 0x18000d4c0
cmp eax, 1
jne 0x18000d4ea
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x4c]
add ecx, 0x5c5c4481
or ecx, eax
mov dword [rsp + 0x4c], ecx
mov rcx, qword [0x18005a4d8]
mov rax, qword [rsp + 0x58]
xor rcx, rax
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
mov eax, ebx
neg eax
mov dword [0x18005a4f8], eax
jmp 0x18000d4ea
mov eax, dword [0x18005a524]
mov ecx, dword [0x18005a4f8]
sub ecx, eax
mov eax, dword [0x18005a524]
add eax, ecx
mov dword [0x18005a524], eax
mov rax, qword [rbp - 0x70]
xor al, 0x49
sub r12b, al
mov dword [rsp + 0x70], r12d
mov byte [0x180010082], 0x99
call qword [sym.imp.USER32.dll_GetMessageTime]
mov eax, eax
mov qword [0x180058570], rax
mov rax, qword [0x180058570]
test rax, rax
jns 0x18000d525
mov eax, dword [rsp + 0x64]
mov r15d, dword [rsp + 0x4c]
movabs rax, 0xb3d82310cb8a9
imul r15, rax
jmp 0x18000d545
movsx eax, byte [0x1800100af]
movsx ecx, byte [rbp + 0x98]
shl cx, 2
mov word [0x18005a528], ax
mov word [0x18005a508], cx
mov rdx, qword [rsp + 0x58]
movzx eax, byte [0x180010082]
add rdx, rsi
cmp rax, rdx
jne 0x18000d682
mov al, byte [rbp + 0xa0]
mov bl, byte [rsp + 0x44]
test al, al
jne 0x18000d60e
test bl, bl
je 0x18000d588
mov rax, qword [0x18005a4d8]
movzx eax, word [rsp + 0x40]
mov rax, qword [rbp - 0x70]
jmp 0x18000d60e
mov rdx, qword [0x180058578]
movsx rax, byte [rbp + 0xa0]
not rdx
cmp rax, rdx
je 0x18000d5c0
mov rax, qword [rbp - 0x78]
imul rcx, rax, 0x2f6a64f9
movsx eax, word [0x18005a4f0]
add qword [0x18005a510], rcx
mov dword [0x18057656c], eax
jmp 0x18000d60e
mov ecx, dword [0x18005a4fc]
movabs rax, 0x9ae51fe4821aa
imul rcx, rax
movsx rax, byte [0x1800100a3]
xor qword [0x18005a510], rcx
mov rcx, qword [0x180058570]
imul rcx, rax
mov rax, qword [0x180058570]
imul rax, rcx
mov qword [0x180058570], rax
mov al, byte [rbp + 0x98]
not al
mov byte [0x180010082], al
cmp word [0x180058580], si
jne 0x18000d682
call qword [sym.imp.USER32.dll_GetCursor]
test rax, rax
je 0x18000d62a
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, qword [rbp - 0x70]
movzx eax, bl
sub eax, 0xcb
mov dword [0x18005a52c], eax
mov rax, qword [rsp + 0x58]
mov edx, dword [rsp + 0x4c]
add rcx, rax
mov rcx, qword [0x18005a510]
mov eax, edi
sete al
imul edx, eax
movzx eax, word [0x180058580]
sub rcx, rax
add rcx, 0xbc
not rcx
not edx
sub rcx, rdx
not rcx
mov qword [0x18005a500], rcx
mov dword [rsp + 0x64], 0xb7
mov byte [0x180010082], 0x99
mov cl, byte [rbp + 0xa8]
movzx eax, word [0x18005a508]
not cl
add cl, al
movzx r12d, r12b
mov byte [0x180010083], cl
mov eax, dword [0x18005a4fc]
mov eax, dword [rbp - 0x7c]
mov rcx, qword [rbp - 0x48]
dec eax
mov qword [rbp - 0x50], rax
mov r13d, dword [rcx + rax*4]
movzx eax, word [rsp + 0x40]
add r13, qword [rbp - 0x38]
sub r12w, ax
mov al, byte [rbp + 0x90]
mov qword [rbp - 0x40], r13
test al, al
je 0x18000d6de
mov al, byte [0x18005a4e8]
jmp 0x18000d6e5
mov rax, qword [0x180058570]
mov rbx, qword [rbp - 0x68]
mov ecx, 0xf4
mov byte [0x1800100a2], al
mov al, byte [rbp + 0x90]
mov rax, qword [0x18005a518]
mov word [0x180058564], bx
sub rcx, rsi
jne 0x18000d6f4
mov rbx, qword [rbp - 0x58]
mov eax, 0x775a
cmp word [r13], ax
jne 0x18000dad7
cmp r15, qword [rbp - 0x68]
mov ecx, edi
mov eax, edi
mov edx, 0x51
seta cl
cmp r15, rdx
setg al
cmp ecx, eax
jne 0x18000d769
mov rax, qword [0x180058588]
mov ecx, 0xda
add ax, cx
mov word [0x18005a520], ax
movzx eax, byte [rbp + 0x90]
test rbx, rbx
jne 0x18000d760
mov rax, r15
mov qword [0x18005a518], rax
jmp 0x18000d79c
movzx eax, word [rsp + 0x40]
test ax, ax
je 0x18000d77a
mov rax, qword [0x18005a4d8]
mov rax, qword [rbp - 0x70]
and eax, 0x24d5adda
mov dword [rsp + 0x60], eax
movsx ecx, word [0x18005a4f0]
mov eax, dword [rsp + 0x64]
add ax, cx
mov word [0x18005a4f0], ax
mov r13, qword [rbp - 0x58]
movzx ebx, r12w
mov dword [0x18005a530], 0x8ee41b8c
mov eax, dword [rsp + 0x4c]
call fcn.18000a064
mov word [0x18005a508], ax
mov edx, edi
movzx eax, word [0x18005a508]
mov ecx, edi
cmp ax, 0x4f
movzx eax, word [0x18005a508]
setl dl
test ax, ax
sets cl
cmp ecx, edx
jae 0x18000d8f2
mov eax, dword [rsp + 0x64]
call fcn.18000b58c
movsx rcx, al
mov edx, edi
mov qword [0x180058588], rcx
mov ecx, edi
mov rax, qword [0x180058588]
cmp rax, 0x1c
mov rax, qword [0x180058588]
setge dl
test rax, rax
setns cl
cmp ecx, edx
jne 0x18000d885
mov rax, qword [0x18005a4d8]
test rax, rax
je 0x18000d838
mov esi, dword [rsp + 0x4c]
neg sil
mov dword [rsp + 0x70], esi
jmp 0x18000d8f2
mov al, byte [rbp + 0xa8]
test al, al
jne 0x18000d84f
cmp word [0x18005a50c], di
je 0x18000d8f2
mov eax, dword [rsp + 0x60]
sub eax, 0x5621c77
cdqe
mov qword [0x18005a518], rax
movsx ecx, word [0x18005a508]
mov eax, dword [rbp - 0x80]
sub cx, ax
mov word [0x18005a508], cx
mov al, byte [rbp + 0x98]
and al, 0xfd
mov byte [rbp + 0xa0], al
jmp 0x18000d8f2
movsx eax, word [0x18005a508]
mov rcx, qword [0x18005a4d8]
not eax
movzx r8d, word [0x180058580]
cdqe
xor rcx, rax
mov eax, dword [rbp - 0x80]
imul edx, eax, 0xbad2
sub r8, rcx
movsx eax, byte [rbp + 0x98]
inc eax
add eax, edx
movsxd rcx, eax
mov rax, rdi
imul rcx, r8
mov qword [rbp - 0x70], rcx
movsx rcx, byte [rbp + 0xa0]
imul rcx, qword [0x18005a4e8]
not rcx
test rcx, rcx
sete al
mov qword [0x180058588], rax
mov rax, qword [rsp + 0x78]
mov dword [0x18005a4f8], eax
mov ecx, dword [0x18005a530]
movzx eax, word [0x18005a50c]
add ecx, ebx
cmp eax, ecx
jne 0x18000d9fc
mov rcx, qword [0x180058578]
mov rax, qword [0x18005a510]
add rax, rax
add rcx, rax
mov al, byte [0x180010083]
movsx rdx, word [0x18005a528]
add al, 0x2f
xor rdx, qword [0x18005a4e8]
add rdx, qword [0x18005a4e8]
mov byte [0x1800100a2], al
mov rax, qword [0x18005a4d8]
mov qword [0x18005a510], rcx
imul rcx, rax, 0x8e
mov rax, qword [0x180058570]
add rax, rcx
lea ecx, [rbx + 0x19]
imul rax, rdx
mov qword [rsp + 0x78], rax
mov rax, qword [0x18005a4d8]
cmp rax, rcx
jne 0x18000d9fc
mov rcx, qword [rbp - 0x78]
mov rax, qword [rsp + 0x58]
cmp rax, rcx
jbe 0x18000d9e4
mov rcx, qword [0x180058570]
mov rax, qword [0x180058578]
cmp rcx, rax
jae 0x18000d7a4
cmp byte [0x1800100a3], dil
je 0x18000d7a4
movzx edx, byte [0x1800100ae]
mov al, r13b
movzx r8d, byte [0x1800100ae]
neg al
movzx ecx, byte [rbp + 0xa8]
imul ecx, edx
mov byte [0x1800100a3], al
movzx ecx, cl
imul ecx, r8d
mov byte [0x1800100ae], cl
jmp 0x18000d7a4
movzx eax, byte [0x1800100a2]
imul ecx, eax, 0x3d2a
mov dword [0x18005a530], ecx
jmp 0x18000d7a4
mov rcx, qword [rbp - 0x40]
mov ebx, r14d
add rbx, rbx
call fcn.18000b6f4
mov rcx, qword [rbp - 0x30]
lea r13, [0x180058590]
vmovups ymm0, ymmword [str.api_ms_win_core_co]
mov dword [r13 + rbx*8 + 8], eax
mov rax, qword [rbp - 0x50]
movzx eax, word [rcx + rax*2]
mov rcx, qword [rbp - 0x28]
mov eax, dword [rcx + rax*4]
lea rcx, [rbp + 0x10]
mov dword [r13 + rbx*8 + 0xc], eax
mov eax, dword [0x18000f478]
mov dword [rbp + 0x30], eax
movzx eax, word [0x18000f47c]
mov word [rbp + 0x34], ax
vmovups ymmword [rbp + 0x10], ymm0
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, 1
mov byte [rbp + 0xa0], al
add r14d, esi
cmp r14d, 0x1f4
jne 0x18000dade
mov r10d, dword [rsp + 0x6c]
movabs rax, 0x61d7202976
mov qword [0x18005a4e8], rax
mov rax, qword [0x180058578]
mov al, byte [rbp + 0x90]
call fcn.18000b35c
movzx r9d, ax
mov dword [rsp + 0x4c], r9d
mov eax, dword [rsp + 0x4c]
test eax, eax
jne 0x18000dafb
mov eax, dword [rsp + 0x60]
mov al, byte [rbp + 0x98]
movabs rax, 0x55054f9a1e434
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
mov rax, qword [rsp + 0x78]
mov dword [0x1804c3250], eax
jmp 0x18000db3c
lea r13, [0x180058590]
mov r12d, dword [rsp + 0x70]
add dword [rbp - 0x7c], 0xffffffff
je 0x18000db7c
mov edx, dword [rsp + 0x6c]
mov r10d, dword [rsp + 0x74]
jmp 0x18000d24b
mov ecx, 0xa3b6
movzx eax, r10w
xor ax, cx
movabs rcx, 0x4959088b34008
mov word [0x18005a50c], ax
movsx rax, word [0x18005a520]
sub rax, rcx
mov qword [0x18005a518], rax
movsx eax, byte [0x1800100a3]
sub eax, 0x9e
cdqe
mov qword [rbp - 0x78], rax
mov rdx, qword [rsp + 0x78]
mov eax, 0x8b2750a4
add rdx, rax
mov eax, dword [0x18005a4fc]
cmp rax, rdx
jne 0x18000db7c
mov rcx, qword [0x18005a500]
movzx eax, r12w
add rcx, rax
cmp rcx, rsi
jne 0x18000db7c
mov eax, dword [rsp + 0x64]
and rax, qword [0x18005a510]
mov qword [rsp + 0x78], rax
jmp 0x18000da79
lea eax, [r14 - 1]
mov dword [0x180058590], r14d
mov edx, edi
test eax, eax
je 0x18000dbf5
mov eax, r14d
mov ecx, edi
sub eax, edx
cmp eax, esi
je 0x18000dbeb
lea r10d, [rcx + 1]
mov r9d, ecx
add r9, r9
mov r8d, r10d
add r8, r8
mov ebx, dword [r13 + r9*8 + 0xc]
mov r11d, dword [r13 + r8*8 + 0xc]
cmp ebx, r11d
jbe 0x18000dbdc
mov ecx, dword [r13 + r9*8 + 8]
mov eax, dword [r13 + r8*8 + 8]
mov dword [r13 + r9*8 + 8], eax
mov dword [r13 + r8*8 + 8], ecx
mov dword [r13 + r9*8 + 0xc], r11d
mov dword [r13 + r8*8 + 0xc], ebx
mov r14d, dword [0x180058590]
mov eax, r14d
mov ecx, r10d
sub eax, edx
sub eax, esi
cmp r10d, eax
jb 0x18000db98
add edx, esi
lea eax, [r14 - 1]
cmp edx, eax
jb 0x18000db8d
mov eax, esi
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret