Function at 0x180015c80
Capabilities:
Check for software breakpoints

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov ebx, dword [rsp + 0x128]
mov rbp, rcx
imul ecx, r9d, 0x7b0
mov rsi, r8
movaps xmmword [rax - 0x48], xmm6
mov edx, r9d
movaps xmmword [rax - 0x58], xmm7
mov eax, r9d
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x98], ecx
cmp r9d, ecx
ja 0x1800166af
movzx ecx, byte [rsp + 0x128]
movzx r15d, word [rsp + 0x128]
movzx r12d, word [rsp + 0x128]
movzx r14d, word [rsp + 0x128]
movzx r13d, byte [rsp + 0x128]
movzx eax, byte [rsp + 0x128]
mov r9d, dword [rsp + 0x128]
mov r10d, dword [rsp + 0x128]
movsd xmm6, qword [0x1801e47e0]
movsd xmm7, qword [0x1801e4820]
mov rdi, qword [rsp + 0x48]
mov dword [rsp + 0x88], ecx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0xa0], r9
mov dword [rsp + 0x80], r15d
mov dword [rsp + 0x84], r12d
mov dword [rsp + 0x7c], r14d
mov dword [rsp + 0x78], r13d
mov dword [rsp + 0x8c], eax
mov qword [rsp + 0x68], r10
cmp edx, 0x1ce3
ja 0x1800165fa
je 0x1800165ce
cmp edx, 0x10b
ja 0x180016553
je 0x180016545
mov eax, edx
sub eax, 0xf
je 0x180016532
sub eax, 0x6f
je 0x180015eae
cmp eax, 0x63
jne 0x18001666e
cmp byte [rbp + 6], 2
jne 0x180015df2
lea rcx, [rbp + 8]
lea r8d, [rax - 0x61]
lea rdx, [0x1801dfbb0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov r8, qword [rsp + 0x138]
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov r10, qword [rsp + 0x68]
test eax, eax
jne 0x180015dfa
mov eax, dword [rbp]
mov dword [r8 + 4], eax
jmp 0x180015dfa
mov r8, qword [rsp + 0x138]
mov eax, dword [r8]
cmp dword [rbp], eax
jne 0x18001666e
mov esi, 6
nop dword [rax + rax]
cmp esi, 6
je 0x180015e20
cmp esi, 0x6c
je 0x1800166a8
jmp 0x180015e9a
movzx eax, word [rbp + 6]
xor r9d, r9d
movzx ecx, al
lea rbp, [r8 + 8]
inc ecx
lea rax, [rsp + 0x60]
mov dword [rsp + 0x60], ecx
mov r8, rbp
mov ecx, 0xb3
mov qword [rsp + 0x20], rax
xor edx, edx
call fcn.180081490
test eax, eax
jne 0x18001669d
mov rcx, qword [rsp + 0x110]
movzx eax, word [rcx + 6]
lea rdx, [rcx + 8]
mov rcx, qword [rbp]
movzx r8d, al
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov rcx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x138]
movzx eax, word [rcx + 6]
movzx ecx, al
mov rax, qword [rbp]
mov rbp, qword [rsp + 0x110]
mov byte [rcx + rax], 0
add esi, 0x66
cmp esi, 0xcc
jbe 0x180015e10
jmp 0x180016660
mov rax, qword [rbp]
mov rcx, rax
mov edx, dword [rax + 0x304]
cmp edx, dword [rax + 0x370]
jl 0x1800164fc
cmp edx, dword [rax + 0x374]
jge 0x1800164fc
mov eax, 0xff
mov dword [rsp + 0x60], eax
nop dword [rax]
sub eax, 0xff
je 0x1800164c1
cmp eax, 1
jne 0x1800164e3
mov r8, qword [rbp]
mov r10d, dword [r8 + 0x30c]
mov eax, dword [r8 + 0x378]
movzx r9d, byte [r8 + 0x360]
add eax, eax
mov r11, qword [r8 + 0x358]
movsxd rdx, eax
lea eax, [r10 + r10]
movsxd rcx, eax
add rdi, rcx
mov ecx, dword [r8 + 0x368]
add rdi, rdx
mov eax, ecx
cdq
idiv dword [r8 + 0x310]
test r9b, r9b
je 0x180015f42
shl eax, 3
jmp 0x180015f45
shl eax, 2
movsxd rsi, eax
lea ebx, [rcx + r10]
add rsi, r11
mov dword [rsp + 0x58], ebx
cmp byte [r8 + 0x361], 0
je 0x180016030
test r9b, r9b
je 0x180015fd0
cmp ebx, dword [r8 + 0x36c]
jge 0x1800164e3
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rsi + 2]
movzx eax, byte [rsi]
lea rsi, [rsi + 8]
shr cl, 5
and al, 0xf9
or cl, al
shr cl, 1
mov byte [rdi + 1], cl
movzx ecx, byte [rsi - 6]
movzx eax, byte [rsi - 4]
and cl, 0xf8
shl cl, 2
shr al, 3
or cl, al
mov byte [rdi], cl
mov r8, qword [rbp]
mov edx, dword [r8 + 0x310]
add ebx, edx
lea eax, [rdx + rdx]
movsxd rcx, eax
add rdi, rcx
cmp ebx, dword [r8 + 0x36c]
jl 0x180015f80
jmp 0x1800164e3
cmp ebx, dword [r8 + 0x36c]
jge 0x1800164e3
nop dword [rax]
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi]
lea rsi, [rsi + 4]
shr cl, 5
and al, 0xf9
or cl, al
shr cl, 1
mov byte [rdi + 1], cl
movzx ecx, byte [rsi - 3]
movzx eax, byte [rsi - 2]
and cl, 0xf8
shl cl, 2
shr al, 3
or cl, al
mov byte [rdi], cl
mov r8, qword [rbp]
mov edx, dword [r8 + 0x310]
add ebx, edx
lea eax, [rdx + rdx]
movsxd rcx, eax
add rdi, rcx
cmp ebx, dword [r8 + 0x36c]
jl 0x180015fe0
jmp 0x1800164e3
test r9b, r9b
je 0x1800162d0
cmp ebx, dword [r8 + 0x36c]
jge 0x1800164e3
movzx r13d, word [rsp + 0x74]
nop dword [rax]
lea rax, [rsi + 6]
mov r9d, 0x6a
xor r8d, r8d
mov qword [rsp + 0x48], rax
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.180006190
movzx ebp, ax
test bp, bp
je 0x180016293
mov ecx, 0xffff
cmp bp, cx
jne 0x1800160b1
movzx ecx, byte [rsi + 2]
movzx eax, byte [rsi]
shr cl, 5
and al, 0xf9
or cl, al
shr cl, 1
mov byte [rdi + 1], cl
movzx ecx, byte [rsi + 2]
movzx eax, byte [rsi + 4]
and cl, 0xf8
shl cl, 2
shr al, 3
or cl, al
mov byte [rdi], cl
jmp 0x180016293
mov ebx, 0x38
nop word [rax + rax]
mov eax, ebx
sub eax, 0x34
je 0x180016234
sub eax, 1
je 0x1800161a4
sub eax, 1
je 0x180016165
sub eax, 1
je 0x18001610c
cmp eax, 1
jne 0x180016269
lea r9d, [rax + 0x69]
mov qword [rsp + 0x48], rsi
xor r8d, r8d
lea rcx, [rsp + 0x48]
xor edx, edx
call fcn.180006190
movzx r14d, ax
jmp 0x180016264
lea rax, [rsi + 2]
mov r9d, 0x6a
xor r8d, r8d
mov qword [rsp + 0x48], rax
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.180006190
movzx r15d, ax
lea rcx, [rsp + 0x48]
lea rax, [rsi + 4]
mov r9d, 0x6a
xor r8d, r8d
mov qword [rsp + 0x48], rax
xor edx, edx
call fcn.180006190
movzx r12d, ax
movzx eax, byte [rdi + 1]
and al, 0xf8
add al, al
movzx ecx, al
mov word [rsp + 0x44], cx
jmp 0x180016264
movzx edx, byte [rdi]
movzx eax, byte [rdi + 1]
movzx ecx, dl
shl al, 6
shr cl, 2
and cl, 0x38
shl dl, 3
or cl, al
movzx r13d, dl
movzx eax, r13w
movzx ecx, cl
shl ax, 8
or r13w, ax
movzx eax, cx
shl ax, 8
or cx, ax
mov word [rsp + 0x70], cx
jmp 0x180016264
movzx r10d, word [rsp + 0x44]
mov r8d, ecx
movzx edx, r14w
sub r8d, ebp
imul edx, ebp
movzx eax, r10w
shl ax, 8
or r10w, ax
movzx ecx, r13w
imul ecx, r8d
mov word [rsp + 0x44], r10w
add ecx, 0x8000
add edx, ecx
movzx ecx, word [rsp + 0x70]
mov r14d, edx
imul ecx, r8d
shr r14d, 0x10
add r14d, edx
movzx edx, r15w
imul edx, ebp
shr r14d, 0x10
add ecx, 0x8000
add edx, ecx
movzx ecx, r10w
mov r15d, edx
imul ecx, r8d
shr r15d, 0x10
add r15d, edx
movzx edx, r12w
imul edx, ebp
shr r15d, 0x10
add ecx, 0x8000
add edx, ecx
mov r12d, edx
shr r12d, 0x10
add r12d, edx
shr r12d, 0x10
jmp 0x180016264
movzx edx, r15w
movzx ecx, r14w
shr dx, 8
movzx eax, dl
shr cx, 9
shr al, 6
and cl, 0x7c
or cl, al
and dl, 0xf8
movzx eax, r12w
shl dl, 2
shr ax, 0xe
or dl, al
mov byte [rdi + 1], cl
mov byte [rdi], dl
mov ecx, 0xffff
dec ebx
cmp ebx, 0x33
ja 0x1800160c0
mov ebx, dword [rsp + 0x58]
mov word [rsp + 0x74], r13w
mov dword [rsp + 0x84], r12d
mov dword [rsp + 0x80], r15d
mov dword [rsp + 0x7c], r14d
mov rbp, qword [rsp + 0x110]
add rsi, 8
mov r8, qword [rbp]
mov edx, dword [r8 + 0x310]
add ebx, edx
mov dword [rsp + 0x58], ebx
lea eax, [rdx + rdx]
movsxd rcx, eax
add rdi, rcx
cmp ebx, dword [r8 + 0x36c]
jl 0x180016050
mov r13d, dword [rsp + 0x78]
jmp 0x1800164e3
cmp ebx, dword [r8 + 0x36c]
jge 0x1800164e3
mov r15d, dword [rsp + 0x8c]
mov r12d, dword [rsp + 0x88]
nop dword [rax]
movzx r14d, byte [rsi + 3]
test r14b, r14b
je 0x18001647f
cmp r14b, 0xff
jne 0x180016331
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi]
shr cl, 5
and al, 0xf9
or cl, al
shr cl, 1
mov byte [rdi + 1], cl
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
and cl, 0xf8
shl cl, 2
shr al, 3
or cl, al
mov byte [rdi], cl
jmp 0x18001647f
mov ebp, 0x105
mov eax, ebp
sub eax, 0x105
je 0x1800163bd
sub eax, 1
je 0x180016367
cmp eax, 1
jne 0x180016450
movzx ecx, r15b
movzx eax, r13b
and cl, 0xf8
shr al, 3
shl cl, 2
or cl, al
mov byte [rdi], cl
jmp 0x180016450
movzx eax, r13b
mov edx, 0xff
sub dx, r14w
movzx ecx, r12b
movzx r9d, dx
and cl, 0xf9
movzx edx, byte [rsi + 2]
imul r9d, eax
mov eax, 0x80
imul edx, r14d
add r9w, dx
add r9w, ax
movzx eax, r9w
mov r13d, eax
shr r13d, 8
add r13d, eax
movzx eax, r15b
shr al, 5
or cl, al
shr r13d, 8
shr cl, 1
mov byte [rdi + 1], cl
jmp 0x180016450
movzx r10d, byte [rdi + 1]
mov r15d, 0x80
movzx r11d, byte [rdi]
movzx eax, r10b
movzx edx, byte [rsi]
and al, 0xf8
add al, al
imul edx, r14d
movzx r13d, r11b
movzx r8d, al
shr r11b, 2
mov r9d, 0xff
sub r9w, r14w
shl r10b, 6
movzx ecx, r9w
and r11b, 0x38
imul r8d, ecx
or r11b, r10b
movzx ecx, r9w
shl r13b, 3
add r8w, dx
movzx edx, byte [rsi + 1]
add r8w, r15w
imul edx, r14d
movzx eax, r8w
mov r12d, eax
movzx r8d, r11b
imul r8d, ecx
shr r12d, 8
add r12d, eax
shr r12d, 8
add r8w, dx
add r8w, r15w
movzx eax, r8w
mov r15d, eax
shr r15d, 8
add r15d, eax
shr r15d, 8
inc ebp
cmp ebp, 0x108
jb 0x180016336
mov ebx, dword [rsp + 0x58]
mov rbp, qword [rsp + 0x110]
mov dword [rsp + 0x88], r12d
mov dword [rsp + 0x8c], r15d
mov dword [rsp + 0x78], r13d
mov r8, qword [rbp]
add rsi, 4
mov edx, dword [r8 + 0x310]
add ebx, edx
mov dword [rsp + 0x58], ebx
lea eax, [rdx + rdx]
movsxd rcx, eax
add rdi, rcx
cmp ebx, dword [r8 + 0x36c]
jl 0x1800162f0
mov r14d, dword [rsp + 0x7c]
mov r15d, dword [rsp + 0x80]
mov r12d, dword [rsp + 0x84]
jmp 0x1800164e3
mov rax, qword [rbp]
mov rcx, rax
mov edx, dword [rax + 0x380]
sub edx, dword [rax + 0x370]
add edx, dword [rax + 0x304]
call qword [rax + 0x130]
mov rdi, rax
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
cmp eax, 0x101
jb 0x180015ee0
mov rcx, qword [rbp]
xor esi, esi
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x38], rsi
lea r8, [rsp + 0x48]
mov qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], 0x75
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call fcn.18004a790
mov ebx, esi
jmp 0x180016660
movsd xmm0, qword [rbp]
addsd xmm0, xmm6
movsd qword [rbp], xmm0
jmp 0x18001666e
mov rcx, qword [rbp]
mov qword [rsp + 0x50], rcx
jmp 0x18001666e
cmp edx, 0x9ab
je 0x1800165be
cmp edx, 0x1347
jne 0x18001666e
movsd xmm0, qword [rbp]
mov eax, 0x51eb851f
mulsd xmm0, xmm7
mov r8d, 0xa
cvttsd2si rcx, xmm0
mul ecx
shr edx, 5
imul eax, edx, 0x64
mov rdx, rsi
sub ecx, eax
mov qword [rsp + 0xa0], rcx
mov ecx, r10d
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rsi + rcx], 0
jne 0x1800165a5
add rcx, rsi
mov qword [rsp + 0x90], rcx
jmp 0x180016660
cvttsd2si r10, qword [rbp]
mov qword [rsp + 0x68], r10
jmp 0x18001666e
mov rcx, qword [rsp + 0x90]
mov byte [rcx], PathMakeUniqueName
inc rcx
mov qword [rsp + 0x90], rcx
cmp r9d, 0xa
jae 0x180016669
mov byte [rcx], 0x30
inc rcx
mov qword [rsp + 0x90], rcx
jmp 0x180016669
cmp edx, 0x267f
je 0x180016649
cmp edx, 0x5136
je 0x1800166af
cmp edx, 0x9105
je 0x180016626
cmp edx, 0xac17
je 0x18001662d
cmp edx, 0x15723
jne 0x18001666e
xor eax, eax
jmp 0x1800166b1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [rsp + 0x40]
xor ecx, ecx
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov qword [rbp], rcx
jmp 0x18001666e
mov rdx, qword [rsp + 0x90]
mov r8d, 0xa
mov ecx, r9d
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov r10, qword [rsp + 0x68]
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
imul eax, dword [rsp + 0x128], 0xa4
add edx, eax
mov dword [rsp + 0x40], edx
cmp edx, dword [rsp + 0x98]
ja 0x1800166af
mov rsi, qword [rsp + 0x120]
mov r9, qword [rsp + 0xa0]
jmp 0x180015d73
mov rcx, qword [rsp + 0x138]
mov dword [rcx + 0x10], eax
mov eax, 2
jmp 0x1800166b1
mov eax, ebx
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret