Function at 0x14004cae0
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, 0x38
call fcn.1400c4950
sub rsp, rax
movsxd rbp, dword [rdx]
lea ebx, [rax - 0x39]
mov rax, qword [rdx + 0x10]
lea r13, [rcx + 0x10]
mov r12, rdx
mov qword [rsp + 0x28], r13
movsxd rdx, dword [rcx]
xor r15d, r15d
mov rsi, rcx
lea rdi, [rax + rbp*2]
cmp edx, dword [rcx + 8]
je 0x14004cdab
mov rcx, qword [r13]
mov rbx, rdx
shl rbx, 6
add rbx, rcx
mov dword [rsp + 0x80], edx
mov qword [rsp + 0x98], rcx
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x14004cb50
mov rdx, qword [rbx]
mov rcx, r12
call fcn.14004b1b0
test al, al
je 0x14004cb71
mov eax, dword [rbx + 0x20]
test eax, eax
je 0x14004cef5
inc eax
mov dword [rbx + 0x20], eax
jmp 0x14004cef5
mov eax, dword [r12 + 4]
lea r9, [r12 + 4]
sub eax, ebp
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x90], eax
mov rcx, rdi
lea r10d, [rax + 1]
movsxd rax, r10d
mov dword [rsp + 0x88], r10d
lea r8, [rdi + rax*2]
cmp rdi, r8
je 0x14004cbd1
mov edx, dword [r12 + 0x18]
shr edx, 3
and dl, 1
nop
movzx eax, word [rcx]
add r15d, eax
test dl, dl
je 0x14004cbc8
sub ax, 0x41
cmp ax, 0x19
ja 0x14004cbc8
add r15d, 0x20
add rcx, 2
cmp rcx, r8
jne 0x14004cbb0
mov eax, 0xb21642c9
mul r15d
shr edx, 4
imul eax, edx, 0x17
sub r15d, eax
movsxd rax, r15d
mov r14d, dword [rsi + rax*4 + 0x20]
test r14d, r14d
je 0x14004cc8f
mov rax, qword [rsp + 0x98]
mov ecx, dword [rsi + 8]
nop
movsxd rbx, r14d
shl rbx, 6
add rbx, rax
cmp dword [rbx + 0x28], ecx
jne 0x14004cc7d
cmp qword [rbx + 0x18], 8
mov rbp, rbx
jb 0x14004cc1c
mov rbp, qword [rbx]
mov r9d, dword [r12 + 0x18]
mov r8d, r10d
and r9d, 8
mov rdx, rbp
mov rcx, rdi
call fcn.1400528a0
test eax, eax
jne 0x14004cc6a
movsxd rax, dword [rsp + 0x90]
movzx ecx, word [rbp + rax*2 + 2]
test cx, cx
je 0x14004cd42
lea eax, [rcx - 0x20]
cmp ax, 0x3d
ja 0x14004cc6a
mov eax, ecx
lea rcx, [0x1401fa048]
cmp byte [rax + rcx - 0x20], 0
jne 0x14004cd42
mov rax, qword [rsp + 0x98]
mov ecx, dword [rsi + 8]
mov r10d, dword [rsp + 0x88]
mov r14d, dword [rbx + 0x38]
test r14d, r14d
jne 0x14004cc00
lea r9, [r12 + 4]
mov r10d, dword [rsp + 0x80]
cmp r10d, 0xffffffff
je 0x14004cef5
mov r14, r13
mov rcx, r9
xor r13d, r13d
mov ebx, r15d
test r10d, r10d
je 0x14004cdcb
movsxd r9, dword [rsi]
mov rdx, qword [rsi + 0x10]
mov rax, r9
mov ebp, dword [rcx]
shl rax, 6
mov r13d, dword [rax + rdx + 0x24]
mov eax, dword [r12]
cmp r13d, 0x100
jne 0x14004cdd6
shl r9, 6
sub ebp, eax
inc ebp
movsxd r8, ebp
lea rcx, [rdx + r9]
mov rdx, rdi
call fcn.1400175d0
movsxd rcx, dword [rsi]
xor r10d, r10d
mov rax, qword [r14]
shl rcx, 6
mov dword [rcx + rax + 0x20], r10d
movsxd r9, dword [rsi]
mov rdx, qword [r14]
shl r9, 6
add r9, rdx
movsxd rcx, dword [r9 + 0x38]
movsxd r8, dword [r9 + 0x3c]
test ecx, ecx
je 0x14004cd2d
mov rax, rcx
shl rax, 6
mov dword [rax + rdx + 0x3c], r8d
mov rdx, qword [r14]
test r8d, r8d
je 0x14004cd9e
mov rax, r8
shl rax, 6
mov dword [rax + rdx + 0x38], ecx
jmp 0x14004ce52
movsxd rcx, dword [rbx + 0x30]
mov eax, dword [rbx + 0x2c]
mov rdx, qword [rsp + 0x98]
shl rcx, 6
mov dword [rcx + rdx + 0x2c], eax
movsxd rax, dword [rbx + 0x2c]
test eax, eax
je 0x14004cd73
mov rcx, qword [r13]
mov rdx, rax
mov eax, dword [rbx + 0x30]
shl rdx, 6
mov dword [rdx + rcx + 0x30], eax
mov rax, qword [r13]
movsxd rcx, dword [rsi]
shl rcx, 6
mov ecx, dword [rcx + rax + 0x24]
mov dword [rbx + 0x24], ecx
mov eax, dword [rsi]
mov dword [rbx + 0x2c], eax
mov eax, dword [rbx + 0x20]
test eax, eax
je 0x14004cd96
inc eax
mov dword [rbx + 0x20], eax
mov dword [rsi], r14d
jmp 0x14004cef5
movsxd rax, dword [r9 + 0x34]
mov dword [rsi + rax*4 + 0x20], ecx
jmp 0x14004ce52
mov ebp, dword [r12 + 4]
lea rcx, [r12 + 4]
mov eax, dword [r12]
mov r14, r13
mov qword [rsp + 0x28], r13
xor r13d, r13d
mov qword [rsp + 0x20], rcx
jmp 0x14004cdd9
mov ebp, dword [rcx]
mov r15d, r10d
mov eax, dword [r12]
jmp 0x14004cdd9
mov r15d, r10d
mov edx, dword [rsi + 0x1c]
sub ebp, eax
mov eax, dword [rsi + 0x18]
inc ebp
inc eax
mov dword [rsi + 0x18], eax
cmp eax, edx
jne 0x14004cdf6
add edx, edx
mov rcx, rsi
call fcn.140044820
movsxd rcx, dword [rsi + 0x18]
mov rdx, rdi
shl rcx, 6
add rcx, qword [r14]
movsxd r8, ebp
call fcn.1400175d0
movsxd rdx, dword [rsi + 0x18]
mov rcx, qword [r14]
mov eax, dword [rsi + 8]
shl rdx, 6
mov dword [rdx + rcx + 0x28], eax
movsxd rax, dword [rsi + 0x18]
mov dword [rsi], eax
mov rcx, rax
shl rcx, 6
lea eax, [r13 + 1]
add rcx, qword [r14]
xor r10d, r10d
mov dword [rcx + 0x20], 1
mov dword [rcx + 0x24], eax
mov dword [rcx + 0x2c], r15d
mov dword [rcx + 0x30], r10d
mov dword [rcx + 0x34], 0xffffffff
mov qword [rcx + 0x38], r10
cmp ebx, 0xffffffff
jne 0x14004ceae
mov rax, qword [rsp + 0x20]
mov ebx, r10d
mov eax, dword [rax]
sub eax, dword [r12]
inc eax
cdqe
lea r8, [rdi + rax*2]
cmp rdi, r8
je 0x14004ce9f
mov edx, dword [r12 + 0x18]
shr edx, 3
and dl, 1
nop dword [rax]
movzx ecx, word [rdi]
add ebx, ecx
test dl, dl
je 0x14004ce96
sub cx, 0x41
cmp cx, 0x19
ja 0x14004ce96
add ebx, 0x20
add rdi, 2
cmp rdi, r8
jne 0x14004ce80
mov eax, 0xb21642c9
mul ebx
shr edx, 4
imul eax, edx, 0x17
sub ebx, eax
movsxd rcx, dword [rsi + 0x18]
mov r8, qword [rsp + 0x28]
shl rcx, 6
mov rax, qword [r8]
mov dword [rcx + rax + 0x34], ebx
movsxd rax, ebx
movsxd rdx, dword [rsi + rax*4 + 0x20]
lea rcx, [rsi + rax*4]
mov eax, dword [rsi + 0x18]
mov dword [rcx + 0x20], eax
movsxd rcx, dword [rsi + 0x18]
mov rax, qword [r8]
shl rcx, 6
mov dword [rcx + rax + 0x38], edx
test edx, edx
je 0x14004cef5
mov rcx, qword [r8]
mov eax, dword [rsi + 0x18]
shl rdx, 6
mov dword [rdx + rcx + 0x3c], eax
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret