Function at 0x1400c4890
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, 0x188
mov r15, r8
mov r14, rdx
mov r13, rcx
mov r12, qword [rdx]
mov rbx, qword [rdx + 8]
mov rcx, qword [r12 + 0xa0]
mov rdi, qword [rdx + 0x10]
test rcx, rcx
je 0x1400c48da
cmp rcx, rdi
jae 0x1400c48d4
cmp byte [rbx + rcx], 0xbf
jg 0x1400c48da
jmp 0x1400c4faa
jne 0x1400c4faa
cmp rcx, rdi
je 0x1400c4faa
movzx eax, byte [rbx + rcx]
test al, al
jns 0x1400c4942
mov edx, eax
and edx, 0x1f
movzx r9d, byte [rbx + rcx + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x1400c493a
movzx r8d, byte [rbx + rcx + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp al, 0xf0
jb 0x1400c4ac2
movzx eax, byte [rbx + rcx + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and eax, 0x3f
or eax, r8d
or eax, edx
cmp eax, 0x110000
jne 0x1400c4942
jmp 0x1400c4faa
shl edx, 6
or edx, r9d
mov eax, edx
cmp eax, 0x7b
jne 0x1400c4faa
lea rsi, [r12 + 0xa0]
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x30], xmm0
mov rcx, r14
call fcn.1400b65f0
test al, al
je 0x1400c4984
mov rcx, r14
call fcn.1400b58e0
mov rax, qword [rsi]
cmp rax, rdi
jne 0x1400c4a3f
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0xb8], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0xa8], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x90], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0xa0], rax
test rdi, rdi
je 0x1400c49dc
js 0x1400c4faa
movzx eax, byte [0x141934140]
xor ecx, ecx
mov rdx, rdi
call fcn.1400e65f0
mov r14, rax
test rax, rax
jne 0x1400c49e2
jmp 0x1400c4faa
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov qword [r13], rdi
mov qword [r13 + 8], r14
mov qword [r13 + 0x10], rdi
mov dword [r13 + 0x18], 0x1e
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
movups xmmword [r13 + 0x50], xmm0
movups xmmword [r13 + 0x60], xmm1
movups xmmword [r13 + 0x70], xmm2
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x50], xmm0
test rax, rax
je 0x1400c4a68
cmp rax, rdi
jae 0x1400c4faa
cmp byte [rbx + rax], 0xc0
jl 0x1400c4faa
movzx ecx, byte [rbx + rax]
test cl, cl
jns 0x1400c4ae1
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x1400c4ad9
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x1400c4e80
movzx ecx, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x1400c4ae1
jmp 0x1400c4faa
shl edx, 0xc
or r8d, edx
mov eax, r8d
cmp eax, 0x7b
je 0x1400c494b
jmp 0x1400c4faa
shl edx, 6
or edx, r9d
mov ecx, edx
lea edx, [rcx - 0x41]
cmp edx, 0x1a
jae 0x1400c4e95
cmp qword [r12 + 0x80], 0
jne 0x1400c4faa
mov qword [r12 + 0x80], 0xffffffffffffffff
lea r15, [r12 + 0x88]
mov qword [r12 + 0x98], 0
mov qword [rsp + 0x48], r13
jmp 0x1400c4b3c
mov rax, qword [rsi]
cmp rax, rdi
je 0x1400c4f59
test rax, rax
je 0x1400c4b66
cmp rax, rdi
jae 0x1400c4b60
cmp byte [rbx + rax], 0xbf
jg 0x1400c4b66
jmp 0x1400c4faa
jne 0x1400c4faa
cmp rax, rdi
je 0x1400c4faa
movzx ebp, byte [rbx + rax]
mov edx, ebp
test bpl, bpl
jns 0x1400c4be0
mov ecx, ebp
and ecx, 0x1f
movzx edx, byte [rbx + rax + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c4bcb
movzx r8d, byte [rbx + rax + 2]
shl edx, 6
and r8d, 0x3f
or r8d, edx
cmp bpl, 0xf0
jb 0x1400c4cd9
movzx edx, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edx, 0x3f
or edx, r8d
or edx, ecx
cmp edx, 0x110000
jne 0x1400c4be0
jmp 0x1400c4faa
shl ecx, 6
or ecx, edx
mov edx, ecx
nop word cs:[rax + rax]
lea ecx, [rdx - 0x41]
cmp ecx, 0x1a
jb 0x1400c4c09
cmp edx, 0x60
jbe 0x1400c4c00
cmp edx, 0x7a
jbe 0x1400c4c09
jmp 0x1400c4dfd
cmp edx, 0x2d
jne 0x1400c4dfd
test rax, rax
je 0x1400c4c21
cmp rax, rdi
jae 0x1400c4faa
cmp bpl, 0xbf
jle 0x1400c4faa
test bpl, bpl
jns 0x1400c4c86
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x1400c4c76
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x1400c4cf3
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x1400c4c7e
jmp 0x1400c4faa
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x80
jae 0x1400c4d02
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x88]
jne 0x1400c4ca8
mov rcx, r15
call fcn.1400f76a0
mov rdx, qword [r12 + 0x98]
mov rax, qword [r12 + 0x90]
mov byte [rax + rdx], bpl
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.1400b65f0
test al, al
je 0x1400c4b30
mov rcx, r14
call fcn.1400b58e0
jmp 0x1400c4b30
shl ecx, 0xc
or r8d, ecx
mov edx, r8d
lea ecx, [rdx - 0x41]
cmp ecx, 0x1a
jae 0x1400c4be8
jmp 0x1400c4c09
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x80
jb 0x1400c4c86
mov dword [rsp + 0x2c], 0
mov eax, ebp
cmp ebp, 0x800
jae 0x1400c4d2a
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x2c], al
mov r13d, 2
mov eax, 1
jmp 0x1400c4d83
cmp ebp, 0x10000
jae 0x1400c4d55
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x2c], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
mov r13d, 3
mov eax, 2
jmp 0x1400c4d83
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x2c], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2e], al
mov r13d, 4
mov eax, 3
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + rax + 0x2c], bpl
mov rax, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x1400c4de5
mov rcx, qword [r12 + 0x90]
add rcx, rbp
lea rdx, [rsp + 0x2c]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, qword [rsp + 0x48]
mov rcx, r14
call fcn.1400b65f0
test al, al
je 0x1400c4b30
jmp 0x1400c4ccc
mov rcx, r15
mov rdx, rbp
mov r8, r13
call fcn.1400fe0a0
mov rbp, qword [r12 + 0x98]
jmp 0x1400c4da8
cmp rax, rdi
je 0x1400c4f59
test rax, rax
je 0x1400c4e1e
cmp rax, rdi
jae 0x1400c4faa
cmp byte [rbx + rax], 0xc0
jl 0x1400c4faa
movzx ecx, byte [rbx + rax]
test cl, cl
jns 0x1400c4eea
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x1400c4ed7
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x1400c4ee1
movzx ecx, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x1400c4eea
jmp 0x1400c4faa
shl edx, 0xc
or r8d, edx
mov ecx, r8d
lea edx, [rcx - 0x41]
cmp edx, 0x1a
jb 0x1400c4aed
cmp ecx, 0x60
jbe 0x1400c4ea5
cmp ecx, 0x7b
jb 0x1400c4aed
jmp 0x1400c4eae
cmp ecx, 0x2d
je 0x1400c4aed
mov rax, qword [rsp + 0x40]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
mov byte [r13 + 8], 0xc
movabs rax, 0x8000000000000000
mov qword [r13], rax
jmp 0x1400c4a2b
shl edx, 6
or edx, r9d
mov ecx, edx
jmp 0x1400c4eea
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x7d
jne 0x1400c4f59
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, r14
call fcn.1400b65f0
mov rcx, qword [r12 + 0x98]
add rcx, 0xfffffffffffffffd
cmp rcx, 7
ja case.0x1400c4f37.4
mov rax, qword [r12 + 0x90]
lea rdx, [0x140111110]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
movzx ecx, word [rax]
xor ecx, 0x6e65
movzx eax, byte [rax + 2]
xor eax, 0x64
or ax, cx
jne case.0x1400c4f37.4
mov al, 7
jmp 0x1400c50ea
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0xe8], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0xd8], xmm0
movaps xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xd0], rax
test rdi, rdi
je 0x1400c4fac
js 0x1400c4faa
movzx eax, byte [0x141934140]
xor ecx, ecx
mov rdx, rdi
call fcn.1400e65f0
mov r14, rax
test rax, rax
jne 0x1400c4fb2
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0xc0]
lea rcx, [rsp + 0x120]
mov edx, 0x1c
mov r15, rdi
mov qword [r13], r15
mov qword [r13 + 8], r14
mov qword [r13 + 0x10], rdi
mov dword [r13 + 0x18], edx
mov edx, dword [rcx + 0x30]
mov dword [r13 + 0x4c], edx
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [r13 + 0x3c], xmm2
movups xmmword [r13 + 0x2c], xmm1
movups xmmword [r13 + 0x1c], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r13 + 0x50], xmm0
movups xmmword [r13 + 0x60], xmm1
movups xmmword [r13 + 0x70], xmm2
inc qword [r12 + 0x80]
jmp 0x1400c4a2b
movabs rcx, 0x666c61682d646e65
cmp qword [rax], rcx
jne case.0x1400c4f37.4
mov al, 0xb
jmp 0x1400c50ea
mov ecx, 0x72617473
xor ecx, dword [rax]
movzx eax, byte [rax + 4]
xor eax, 0x74
or eax, ecx
jne case.0x1400c4f37.4
mov al, 6
jmp 0x1400c50ea
movabs rcx, 0x61682d7472617473
xor rcx, qword [rax]
movzx eax, word [rax + 8]
xor rax, 0x666c
or rax, rcx
je 0x1400c50e8
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x100], rax
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x108], xmm0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x118], rax
mov rcx, rdi
call fcn.1400d6090
mov r15, rax
mov r14, rdx
mov rcx, rdx
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0x154]
mov edx, 0x1d
jmp 0x1400c4fd8
mov al, 0xa
mov byte [r13 + 8], al
movabs rax, 0x8000000000000000
mov qword [r13], rax
inc qword [r12 + 0x80]
jmp 0x1400c4a2b