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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov ebx, r9d
mov r14, rdx
mov rdi, rcx
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0xc8], rax
mov rsi, qword [rsp + 0x178]
mov r9d, dword [rsp + 0x170]
movzx r13d, word [rsp + 0x168]
movzx edx, word [rsp + 0x160]
mov r11, qword [rsp + 0x158]
mov ebp, dword [rsp + 0x150]
mov ecx, dword [rsp + 0x148]
mov r10d, dword [rsp + 0x140]
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, r9
mov dword [rsp + 0x84], ecx
mov word [rsp + 0x46], dx
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xd0], rsi
jne 0x140215398
mov word [rsp + 0x3e], r13w
mov esi, ebp
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
mov rbp, r12
sub rbp, r9
jbe 0x1402153d6
cmp byte [r13 + r9], 0xbf
jg 0x1402153d8
lea rax, [0x140465510]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r9
mov r9, r12
call fcn.14004b030
lea rax, [r15 + 3]
cmp rax, r9
jne 0x140215403
mov word [rsp + 0x3e], r13w
mov byte [rsp + 0x3d], r8b
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x140215496
cmp r12, r15
jbe 0x140215490
cmp byte [r13 + r15], 0xbf
jg 0x140215496
jmp 0x140215a85
jne 0x14021537b
cmp rbp, 2
jb 0x1402153eb
movzx eax, word [r13 + r9]
cmp eax, 0x2f2f
je 0x140215463
test ebx, ebx
mov ebp, esi
je 0x140215411
cmp r12, r15
jbe 0x14021540b
cmp byte [r13 + r15], 0xbf
jg 0x140215411
jmp 0x140215a9f
mov rsi, r9
jmp 0x140215516
jne 0x140215a9f
mov rsi, r9
sub r12, r15
cmp r12, 3
jae 0x140215428
movzx r13d, word [rsp + 0x3e]
jmp 0x140215516
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
movzx r13d, word [rsp + 0x3e]
jne 0x140215516
lea rcx, [0x140465483]
lea r8, [0x140465540]
mov edx, 0x4f
call fcn.140047420
cmp r12, r9
jbe 0x140215607
cmp byte [r13 + r9], 0xbf
jg 0x14021560d
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x140464ff0]
mov edx, 0x2c
call fcn.140047420
jne 0x140215a85
cmp r12, r9
jbe 0x1402154e1
cmp byte [r13 + r9], 0xbf
jle 0x140215a85
mov dword [rsp + 0x40], ebp
mov r8, r9
sub r8, r15
lea rbp, [r15 + r13]
lea rdx, [0x140465448]
mov rcx, rbp
mov rsi, r9
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x140215669
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
movzx r13d, word [rsp + 0x3e]
jmp 0x140215516
jne 0x140215a85
mov rsi, r9
mov r8, r9
sub r8, r15
add r13, r15
lea rdx, [0x140465448]
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
movzx r8d, byte [rsp + 0x3d]
movzx r13d, word [rsp + 0x3e]
je 0x140215abc
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x48]
mov rdx, r14
mov r9d, ebx
call fcn.1402187f0
mov eax, dword [rsp + 0x48]
cmp eax, 2
jne 0x14021558d
movzx eax, byte [rsp + 0x4c]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x1402155f3
mov r8, qword [r14 + 8]
mov rcx, qword [0x1404a30d0]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14021d5e4
mov ecx, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x4c]
mov r8, qword [r14 + 0x10]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r14]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xc0]
movups xmm0, xmmword [r8]
movups xmmword [rdi + 0x40], xmm0
movzx r8d, byte [r8 + 0x10]
mov byte [rdi + 0x50], r8b
mov dword [rdi + 0x18], eax
mov qword [rdi + 0x1c], rdx
mov dword [rdi + 0x24], ecx
movzx eax, word [rsp + 0x46]
mov word [rdi + 0x28], ax
mov word [rdi + 0x2a], r13w
mov dword [rdi + 0x2c], ebx
mov eax, dword [rsp + 0x80]
mov dword [rdi + 0x30], eax
mov eax, dword [rsp + 0x84]
mov dword [rdi + 0x34], eax
mov dword [rdi + 0x38], ebp
mov dword [rdi + 0x3c], esi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x140215478
mov byte [rsp + 0x3d], r8b
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x1402157bc
lea rdx, [r9 + r13]
lea rcx, [r9 + r13]
add rcx, 2
mov r8, rbp
mov rbp, r9
call sub.msvcrt.dll_memmove
mov r9, rbp
mov word [r13 + rbp], 0x2e2f
add r12, 2
mov qword [r14 + 0x10], r12
add r9d, 2
mov r13, qword [r14 + 8]
movzx r8d, byte [rsp + 0x3d]
test ebx, ebx
mov ebp, esi
jne 0x1402153f1
jmp 0x140215411
cmp byte [r13 + rsi], 0x2f
movzx r8d, byte [rsp + 0x3d]
mov r9, rsi
jne 0x140215ace
lea rsi, [r9 + 1]
cmp rsi, r12
jae 0x140215698
cmp byte [r13 + rsi], 0x2f
jne 0x140215698
mov ebp, dword [rsp + 0x40]
jmp 0x1402159c4
test ebx, ebx
je 0x1402156c1
cmp r12, r15
jbe 0x1402156bf
cmp byte [rbp], 0xbf
jg 0x1402156c1
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x140465808]
mov edx, 0x2a
call fcn.140047420
jne 0x1402156a7
cmp byte [r13 + r9], 0xbf
jle 0x140215ae7
cmp ebx, r9d
ja 0x140215aff
cmp r12, r9
jb 0x140215b11
mov qword [r14 + 0x10], r15
mov r10, r12
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r9
lea rdx, [rsp + 0x70]
sub r10, r9
mov qword [rsp + 0x68], r10
lea rax, [0x140465b0a]
mov qword [rsp + 0x70], rax
lea rax, [0x140465b0b]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x88], r9
jne 0x140215748
mov rcx, r14
call fcn.14021a1c0
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
jmp 0x14021595c
cmp ebx, r9d
jne 0x14021578f
mov r13, rax
cmp qword [r14], r12
je 0x140215a3d
mov rdx, qword [r14 + 8]
lea rcx, [rdx + r9]
inc rcx
add rdx, r9
mov r8, r10
mov r12, r9
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x60], rsi
mov rax, qword [r14 + 0x10]
cmp rax, rsi
mov ebp, dword [rsp + 0x40]
jne 0x1402157dc
mov r10d, 1
jmp 0x140215834
add r13, r9
mov byte [rbp], 0x3a
inc rbp
inc qword [r14 + 0x10]
cmp rbp, r13
mov ebp, dword [rsp + 0x40]
jne 0x14021595c
mov qword [rsp + 0x70], rax
mov eax, 1
xor r10d, r10d
jmp 0x140215862
mov r8d, 2
mov rcx, r14
mov rdx, r12
mov r13, r9
call fcn.140043e10
mov r9, r13
mov r13, qword [r14 + 8]
jmp 0x140215622
mov rcx, r12
sub rcx, rax
add rax, qword [r14 + 8]
inc rcx
xor r9d, r9d
movzx r8d, byte [rsp + 0x3d]
mov r10, r13
lea r11, [0x140465b0a]
cmp r9, 1
je 0x14021595c
mov rdx, r9
movzx r9d, byte [r9 + r11]
mov byte [rax + rdx], r9b
inc qword [r14 + 0x10]
lea r9, [rdx + 1]
cmp rcx, r9
jne 0x1402157fc
lea rax, [rdx + r11]
inc rax
mov qword [rsp + 0x70], rax
sub r10, rax
je 0x140215a2e
test r10, r10
js 0x140215b23
movzx eax, byte [0x1404a3130]
xor ecx, ecx
mov r12, r10
mov rdx, r10
call fcn.140201a50
test rax, rax
je 0x140215b28
lea rdx, [rsp + 0x70]
mov r10, r12
mov qword [rsp + 0x90], r10
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x90]
call fcn.14021a1c0
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
test r13, r13
je 0x140215936
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
lea rdx, [r8 + r12]
mov rax, qword [rbp]
sub rax, rdx
cmp rax, r13
jb 0x140215a65
lea rsi, [r12 + r13]
mov rcx, qword [rbp + 8]
lea rdx, [rcx + r12]
add rcx, rsi
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x60], rsi
mov rax, qword [rbp + 0x10]
cmp rax, rsi
mov r9, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xb0]
je 0x140215936
sub r12, rax
add rax, qword [rbp + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x140215936
movzx edx, byte [r9 + rcx]
mov byte [rax + rcx], dl
inc qword [rbp + 0x10]
inc rcx
cmp r12, rcx
jne 0x14021591d
test r8, r8
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
je 0x14021595c
mov rcx, qword [0x1404a30d0]
xor edx, edx
mov r8, r9
call fcn.14021d5e4
movzx r8d, byte [rsp + 0x3d]
mov rax, qword [rsp + 0x50]
mov r12, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x48]
test r12, r12
mov r9, qword [rsp + 0x88]
je 0x1402159b8
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
lea r13, [rax + 0x10]
mov rbp, qword [rax + 0x10]
cmp rdx, rbp
je 0x1402159ad
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, rbp
mov r8, r12
mov rsi, r9
call sub.msvcrt.dll_memmove
mov r9, rsi
movzx r8d, byte [rsp + 0x3d]
add rbp, r12
mov qword [r13], rbp
mov ebp, dword [rsp + 0x40]
add r9d, 0xfffffffe
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x1402159e3
cmp r12, r15
jbe 0x1402159e1
cmp byte [r13 + r15], 0xbf
jg 0x1402159e3
lea rax, [0x140465468]
jmp 0x140215aa6
jne 0x1402159d5
mov rsi, r9
sub r12, r15
cmp r12, 3
jb 0x14021541d
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
movzx r13d, word [rsp + 0x3e]
jne 0x140215516
lea rcx, [0x140465483]
lea r8, [0x1404654d8]
mov edx, 0x4f
call fcn.140047420
mov eax, 1
lea rdx, [rsp + 0x70]
jmp 0x140215862
mov r8d, 1
mov rcx, r14
mov rdx, r12
mov r12, rsi
mov rsi, r9
mov rbp, r10
call fcn.1401d5ea0
mov r10, rbp
mov r9, rsi
mov rsi, r12
jmp 0x140215759
mov rcx, rbp
mov qword [rsp + 0xa8], r8
mov r8, r13
call fcn.1401d5ea0
mov r8, qword [rsp + 0xa8]
jmp 0x1402158df
lea rax, [0x140465430]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
call fcn.14004b030
lea rax, [0x140465528]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.14004b030
lea r8, [0x140465450]
mov rcx, rsi
mov rdx, r12
call fcn.140046850
mov qword [rsp + 0x48], 0
add r13, r9
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.14021a720
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x140465820]
mov edx, 0x2a
call fcn.140047420
lea r8, str.pWF_
mov rcx, r15
mov rdx, r9
call fcn.140049b30
lea r8, str.pWF_
mov rcx, r9
mov rdx, r12
call fcn.140047140
call fcn.140043d60
mov ecx, 1
mov rdx, r12
call fcn.140043d40
int3