Function at 0x14001a660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x10d8
call fcn.1400455d0
sub rsp, rax
mov rax, qword [0x14005b040]
xor rax, rsp
mov qword [rsp + 0x10c0], rax
mov rbx, rdx
mov qword [rsp + 0x88], r8
xor r8d, r8d
mov qword [rsp + 0x50], rdx
mov edx, dword [rsp + 0x1140]
mov r11, rcx
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x80], rcx
mov dword [rsp + 0x30], edx
test rbx, rbx
jne 0x14001a6c4
mov eax, r8d
jmp 0x14001a72a
mov rax, rbx
mov edi, r8d
movzx eax, byte [rbx]
test al, al
je 0x14001a6f9
movsx ecx, al
call fcn.14002ca88
imul edi, edi, 0x1f
lea rbx, [rbx + 1]
add edi, eax
movzx eax, byte [rbx]
test al, al
jne 0x14001a6d1
mov r11, qword [rsp + 0x80]
xor r8d, r8d
mov r9, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
mov eax, 0x652c7215
mov ecx, edi
neg ecx
cmovs ecx, edi
imul ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x143e1
mov edx, dword [rsp + 0x30]
sub ecx, eax
movsxd rax, ecx
mov eax, dword [r11 + rax*8 + 0x28]
mov ecx, dword [r11 + 0x18]
lea r12, [rsp + 0x98]
mov dword [r11 + 0x10], eax
cmp ecx, 1
mov esi, r8d
mov qword [rsp + 0x78], r12
mov r14d, r8d
mov qword [rsp + 0x70], r8
lea eax, [rcx - 1]
mov qword [rsp + 0x90], rsi
cmovl eax, r8d
mov dword [rsp + 0x34], 0x20
mov dword [r11 + 0x14], eax
mov r13, r8
mov qword [rsp + 0x68], r14
mov r15, r8
mov dword [rsp + 0x3c], r8d
mov ebp, r8d
mov dword [rsp + 0x4c], r8d
test r9, r9
je 0x14001a79f
lea r8, [0x1400501f0]
mov rcx, r9
call fcn.1400270dc
mov r11, qword [rsp + 0x80]
xor r8d, r8d
test rbx, rbx
je 0x14001a817
cmp dword [r11 + 0x10], 0xffffffff
jne 0x14001a7b2
xor eax, eax
jmp 0x14001ae8b
mov rax, qword [rsp + 0x50]
mov edi, r8d
movzx eax, byte [rax]
test al, al
je 0x14001a7e4
movsx ecx, al
call fcn.14002ca88
imul edi, edi, 0x1f
lea rbx, [rbx + 1]
add edi, eax
movzx eax, byte [rbx]
test al, al
jne 0x14001a7c1
mov r11, qword [rsp + 0x80]
xor r8d, r8d
mov eax, 0x652c7215
mov ebx, edi
neg ebx
cmovs ebx, edi
imul ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x143e1
sub ebx, eax
movsxd rax, ebx
mov dword [rsp + 0x58], ebx
mov r10d, dword [r11 + rax*8 + 0x2c]
mov dword [rsp + 0x38], r10d
jmp 0x14001a824
mov dword [rsp + 0x38], 0x7fffffff
mov dword [rsp + 0x58], r8d
mov rax, qword [rsp + 0x88]
mov edx, 1
mov dword [rsp + 0x5c], r8d
mov r9d, r8d
mov dword [rsp + 0x60], edx
mov rcx, rax
test rax, rax
je 0x14001a870
test r9d, r9d
jne 0x14001a861
movzx eax, byte [rcx]
test al, al
je 0x14001a861
cmp al, 0x2a
je 0x14001a859
cmp al, 0x3f
jne 0x14001a85c
mov r9d, edx
add rcx, rdx
jne 0x14001a845
mov dword [rsp + 0x5c], r9d
nop word [rax + rax]
mov r10d, dword [r11 + 0x14]
mov edi, r8d
mov r9, r8
nop word [rax + rax]
movsxd r8, dword [r11 + 0x10]
cmp r8d, r10d
jge 0x14001a8b2
mov rax, qword [r11 + 8]
movzx edx, byte [r8 + rax]
lea eax, [r8 + 1]
mov dword [r11 + 0x10], eax
cmp dl, 0xa
je 0x14001a8b4
test dl, dl
je 0x14001a8d1
inc edi
mov byte [rsp + r9 + 0xc0], dl
inc r9
jmp 0x14001a880
xor dl, dl
test dl, dl
je 0x14001a8d1
lea eax, [rdi + 1]
cmp eax, 0xfff
jge 0x14001a8d1
mov edi, eax
mov byte [rsp + r9 + 0xc1], 0
mov al, 0xa
jmp 0x14001a8db
cmp edi, 0xfff
jge 0x14001a8f2
xor al, al
lea rcx, [rsp + 0xc0]
add rcx, r9
mov byte [rcx], al
test edi, edi
je 0x14001aa80
jmp 0x14001a90c
lea eax, [rdi - 1]
test eax, eax
lea rax, [rsp + r9 + 0xbf]
jg 0x14001a909
lea rax, [rsp + 0xc0]
mov byte [rax], 0
movsx ecx, byte [rsp + 0xc0]
lea rbx, [rsp + 0xc0]
call fcn.140026f80
test eax, eax
je 0x14001a940
nop word [rax + rax]
movsx ecx, byte [rbx + 1]
inc rbx
call fcn.140026f80
test eax, eax
jne 0x14001a930
movzx eax, byte [rbx]
cmp al, 0x5b
jne 0x14001ab76
movsx ecx, byte [rbx + 1]
inc rbx
call fcn.140026f80
test eax, eax
je 0x14001a970
nop dword [rax + rax]
movsx ecx, byte [rbx + 1]
inc rbx
call fcn.140026f80
test eax, eax
jne 0x14001a960
mov r8d, dword [rsp + 0x34]
cmp r8d, edi
jge 0x14001a9b4
lea rcx, [rsp + 0x98]
lea eax, [rdi + rdi]
mov dword [rsp + 0x34], eax
cmp r12, rcx
jne 0x14001a998
movsxd rcx, eax
call fcn.14002c94c
jmp 0x14001a9a7
movsxd rdx, eax
mov rcx, r12
mov dword [rsp + 0x34], eax
call fcn.140026cb0
mov r8d, dword [rsp + 0x34]
mov r12, rax
mov qword [rsp + 0x78], rax
movzx ecx, byte [rbx]
xor edi, edi
cmp cl, 0x5d
je 0x14001a9f2
mov rdx, r12
mov r15d, 0x2401
sub rdx, rbx
nop word [rax + rax]
cmp cl, 0xd
ja 0x14001a9db
bt r15d, ecx
jb 0x14001a9ed
mov byte [rdx + rbx], cl
inc rdi
movzx ecx, byte [rbx + 1]
inc rbx
cmp cl, 0x5d
jne 0x14001a9d0
mov r15, qword [rsp + 0x70]
mov byte [rdi + r12], 0
test rdi, rdi
jne 0x14001aa0e
movsxd rdx, r8d
mov rcx, r12
lea r8, [0x1400501f0]
call fcn.1400270dc
mov r8, qword [rsp + 0x50]
mov dword [rsp + 0x4c], 0
test r8, r8
jne 0x14001aaec
test rdi, rdi
jle 0x14001aa6a
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [r12 + rbx], 0
jne 0x14001aa30
mov edi, dword [rsp + 0x30]
cmp edi, ebp
jbe 0x14001aa62
mov r8d, edi
mov ecx, ebp
sub r8d, ebp
lea rax, [rbx + 2]
cmp r8, rax
mov rdx, r12
cmovae r8, rax
add rcx, qword [rsp + 0x40]
call fcn.140045d50
inc ebp
add ebp, ebx
mov dword [rsp + 0x3c], ebp
xor r8d, r8d
cmp dword [rsp + 0x60], 0
mov r11, qword [rsp + 0x80]
jne 0x14001a870
test r12, r12
je 0x14001aa9a
lea rax, [rsp + 0x98]
cmp r12, rax
je 0x14001aa9a
mov rcx, r12
call fcn.1400272e4
test r13, r13
je 0x14001aaa7
mov rcx, r13
call fcn.1400272e4
test r15, r15
je 0x14001aab4
mov rcx, r15
call fcn.1400272e4
test r14d, r14d
jne 0x14001ae88
test ebp, ebp
je 0x14001ae88
mov edx, dword [rsp + 0x30]
cmp ebp, edx
jbe 0x14001ae84
mov r8, qword [rsp + 0x40]
lea ecx, [rdx - 2]
lea eax, [rdx - 1]
mov byte [rax + r8], r14b
mov byte [rcx + r8], r14b
mov r14d, ecx
jmp 0x14001ae88
movzx eax, byte [r12]
xor edi, edi
mov rbx, r12
test al, al
je 0x14001ab1d
nop word [rax + rax]
movsx ecx, al
call fcn.14002ca88
imul edi, edi, 0x1f
lea rbx, [rbx + 1]
add edi, eax
movzx eax, byte [rbx]
test al, al
jne 0x14001ab00
mov r8, qword [rsp + 0x50]
mov ecx, edi
mov eax, 0x652c7215
neg ecx
cmovs ecx, edi
imul ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x143e1
sub ecx, eax
cmp dword [rsp + 0x58], ecx
jne 0x14001ab66
dec dword [rsp + 0x38]
mov rdx, r8
mov rcx, r12
call fcn.140027214
xor r8d, r8d
mov ebx, r8d
test eax, eax
sete bl
mov dword [rsp + 0x4c], ebx
jmp 0x14001aa6d
cmp dword [rsp + 0x38], 0
jle 0x14001aa80
jmp 0x14001aa6a
cmp qword [rsp + 0x50], 0
je 0x14001aa6a
cmp al, 0x3b
je 0x14001aa6a
cmp dword [rsp + 0x4c], 0
je 0x14001aa6a
add edi, edi
cmp edi, esi
jle 0x14001abca
lea esi, [rdi + 0x64]
mov rcx, r13
movsxd rdi, esi
mov rdx, rdi
mov qword [rsp + 0x90], rsi
call fcn.140026cb0
mov rdx, rdi
mov rcx, r15
mov r13, rax
call fcn.140026cb0
mov r15, rax
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x28], esi
lea rdx, str.______n_
mov r9d, esi
mov qword [rsp + 0x20], r15
mov r8, r13
mov byte [r15], 0
mov rcx, rbx
call fcn.140001040
test eax, eax
je 0x14001aa6a
mov rax, qword [rsp + 0x88]
test rax, rax
jne 0x14001ac59
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp byte [rbx + r13], 0
jne 0x14001ac10
mov edi, dword [rsp + 0x30]
cmp edi, ebp
jbe 0x14001ac42
mov r8d, edi
mov ecx, ebp
sub r8d, ebp
lea rax, [rbx + 2]
cmp r8, rax
mov rdx, r13
cmovae r8, rax
add rcx, qword [rsp + 0x40]
call fcn.140045d50
inc ebp
add ebp, ebx
xor r8d, r8d
mov dword [rsp + 0x3c], ebp
mov byte [r13], r8b
mov byte [r15], r8b
jmp 0x14001aa6d
cmp dword [rsp + 0x5c], 0
je 0x14001add6
mov rsi, 0xffffffffffffffff
mov rbx, rsi
nop
inc rbx
cmp byte [rbx + r13], 0
jne 0x14001ac70
mov rdi, rsi
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x14001ac80
mov eax, ebx
add eax, 1
movsxd rcx, eax
cmovo rcx, rsi
call fcn.14002c94c
mov ecx, edi
mov r14, rax
add ecx, 1
movsxd rcx, ecx
cmovo rcx, rsi
call fcn.14002c94c
xor r15d, r15d
movsxd rsi, ebx
mov r12, rax
test ebx, ebx
jle 0x14001ace0
mov rbp, r13
mov rbx, r14
sub rbp, r14
mov r15, rsi
movsx ecx, byte [rbx + rbp]
call fcn.14002ca88
mov byte [rbx], al
lea rbx, [rbx + 1]
sub rsi, 1
jne 0x14001acc7
mov ebp, dword [rsp + 0x3c]
mov byte [r15 + r14], 0
xor r15d, r15d
movsxd rdi, edi
test rdi, rdi
jle 0x14001ad16
mov rsi, qword [rsp + 0x88]
mov rbx, r12
sub rsi, r12
mov r15, rdi
movsx ecx, byte [rbx + rsi]
call fcn.14002ca88
mov byte [rbx], al
lea rbx, [rbx + 1]
sub rdi, 1
jne 0x14001ad01
mov rdx, r12
mov byte [r15 + r12], 0
mov rcx, r14
call fcn.14001a220
mov rcx, r14
mov ebx, eax
call fcn.1400272e4
mov rcx, r12
call fcn.1400272e4
test ebx, ebx
je 0x14001ae5e
mov rsi, 0xffffffffffffffff
mov rbx, rsi
nop word [rax + rax]
inc rbx
cmp byte [rbx + r13], 0
jne 0x14001ad50
mov edi, dword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
cmp edi, ebp
jbe 0x14001ad85
mov r8d, edi
mov ecx, ebp
sub r8d, ebp
lea rax, [rbx + 2]
cmp r8, rax
mov rdx, r13
cmovae r8, rax
add rcx, r14
call fcn.140045d50
mov r15, qword [rsp + 0x70]
inc ebx
add ebx, ebp
nop
inc rsi
cmp byte [r15 + rsi], 0
jne 0x14001ad90
mov qword [rsp + 0x90], rsi
cmp edi, ebx
jbe 0x14001adc2
lea eax, [rsi + 2]
mov ecx, edi
sub ecx, ebx
mov rdx, r15
cmp ecx, eax
cmovae ecx, eax
mov r8d, ecx
mov ecx, ebx
add rcx, r14
call fcn.140045d50
lea ebp, [rsi + 1]
add ebp, ebx
mov dword [rsp + 0x3c], ebp
mov byte [rbp + r14], 0
jmp 0x14001ae6b
mov rdx, rax
mov rcx, r13
call fcn.140027214
test eax, eax
jne 0x14001ae75
mov r14, 0xffffffffffffffff
inc r14
cmp byte [r15 + r14], 0
jne 0x14001adf0
mov edi, dword [rsp + 0x30]
mov r8, r15
mov qword [rsp + 0x68], r14
mov edx, edi
cmp r14d, edi
jbe 0x14001ae40
mov rbx, qword [rsp + 0x40]
mov r9d, edx
mov rcx, rbx
call fcn.140026bc0
xor r8d, r8d
lea ecx, [rdi - 1]
mov r14d, ecx
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0x68], r14
mov byte [rcx + rbx], 0
mov byte [r13], r8b
mov byte [r15], r8b
jmp 0x14001aa6d
mov rcx, qword [rsp + 0x40]
call fcn.1400270dc
xor r8d, r8d
mov byte [r13], r8b
mov byte [r15], r8b
mov dword [rsp + 0x60], r8d
jmp 0x14001aa6d
mov rsi, qword [rsp + 0x90]
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
mov r14, qword [rsp + 0x68]
xor r8d, r8d
mov byte [r13], r8b
mov byte [r15], r8b
jmp 0x14001aa6d
lea r14d, [rbp + 1]
mov eax, r14d
mov rcx, qword [rsp + 0x10c0]
xor rcx, rsp
call fcn.140020e70
add rsp, 0x10d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret