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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rdi, qword [rcx]
xor ebx, ebx
mov r12, qword [r8 + 0x60]
mov r15, r8
movsxd rsi, edx
mov rbp, rcx
mov qword [rsp + 0x50], r12
mov r14, qword [rdi + 0x10]
mov rax, qword [rdi + 0x60]
mov qword [rdi + 0x60], rbx
mov qword [rsp + 0x68], rax
mov rax, qword [rdi + 0x68]
mov qword [rdi + 0x68], rbx
movsxd rdx, dword [r14 + 0x90]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x40], edx
cmp dword [r14 + 0x94], edx
jg 0x1400cdb8f
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea edx, [rbx + 0xf]
mov rcx, r14
call fcn.140048950
mov dword [rsp + 0x40], eax
jmp 0x1400cdbb6
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [r14 + 0x88]
mov qword [rax + rcx*8], 0xf
mov qword [rax + rcx*8 + 8], rbx
mov qword [rax + rcx*8 + 0x10], rbx
mov qword [rsp + 0x48], rsi
nop dword [rax + rax]
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.1400c1bf0
dec dword [rdi + 0x44]
mov r9d, dword [rdi + 0x38]
mov r13d, dword [r15 + 4]
inc r9d
mov eax, dword [rdi + 0x44]
mov dword [rsp + 0x38], eax
mov dword [rdi + 0x38], r9d
mov dword [r15 + 0x34], r9d
movzx r15d, byte [r15 + 0x40]
mov rbp, qword [rbp + 8]
imul rcx, r15, 0x68
mov dword [rsp + 0x34], r13d
mov rax, qword [rcx + rbp + 0x28]
movsx ecx, word [rax + 0x3a]
mov eax, 0x66666667
imul ecx
mov r8d, edx
sar r8d, 2
mov eax, r8d
shr eax, 0x1f
add r8d, eax
lea eax, [r8 + r8*4]
add eax, eax
sub ecx, eax
movsxd rdx, ecx
cmp rdx, 5
jb 0x1400cdc34
sub rdx, 2
jmp 0x1400cdc3d
cmp rdx, 1
jb 0x1400cdc3d
dec rdx
cmp r8w, 0x3c
jg 0x1400cdc7e
add rdx, 8
movsx eax, r8w
cmp r8w, 3
jl 0x1400cdc5b
lea ecx, [rax - 3]
shl rdx, cl
jmp 0x1400cdc65
mov ecx, 3
sub ecx, eax
shr rdx, cl
cmp rdx, 0x2710
jae 0x1400cdc75
mov edx, 0x2710
jmp 0x1400cdc83
cmp rdx, 0x989680
jbe 0x1400cdc83
mov edx, 0x989680
movsxd rcx, dword [r14 + 0x90]
cmp dword [r14 + 0x94], ecx
jg 0x1400cdca9
mov r8d, edx
mov dword [rsp + 0x20], ebx
mov edx, 0x4d
mov rcx, r14
call fcn.140048950
jmp 0x1400cdcd7
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x4d
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
movsxd rdx, dword [r14 + 0x90]
mov dword [rsp + 0x3c], edx
cmp dword [r14 + 0x94], edx
jg 0x1400cdd07
xor r9d, r9d
mov dword [rsp + 0x20], ebx
mov r8d, r13d
mov rcx, r14
lea edx, [r9 + 0x24]
call fcn.140048950
mov dword [rsp + 0x3c], eax
jmp 0x1400cdd36
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x24
mov dword [rax + rcx*8 + 4], r13d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], rbx
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rax + 0x90]
movsxd rax, dword [rax + 0x84]
imul rsi, rax, 0x38
add rsi, rbx
cmp rbx, rsi
jae 0x1400cdd9a
mov r12d, dword [rsp + 0x38]
nop dword [rax]
test byte [rbx + 0x12], 2
jne 0x1400cdd8c
mov rcx, qword [rbx]
mov r8d, r15d
mov rdx, rbp
call fcn.1400663d0
test eax, eax
je 0x1400cdd8c
mov rdx, qword [rbx]
mov r9d, 0x10
mov r8d, r12d
mov rcx, rdi
call fcn.14006da00
add rbx, 0x38
cmp rbx, rsi
jb 0x1400cdd60
mov r12, qword [rsp + 0x50]
test dword [r12 + 0x38], 0x100
je 0x1400cdeb1
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1400cddb9
inc dword [rdi + 0x38]
mov ebx, dword [rdi + 0x38]
jmp 0x1400cddc8
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov ebx, dword [rdi + rax*4 + 0xe8]
movsxd rcx, dword [r14 + 0x90]
xor esi, esi
cmp dword [r14 + 0x94], ecx
jg 0x1400cddf3
mov r9d, ebx
mov dword [rsp + 0x20], esi
mov r8d, r13d
mov edx, 0x87
mov rcx, r14
call fcn.140048950
jmp 0x1400cde21
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x87
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov r15, qword [rsp + 0xe0]
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r15 + 0x34]
cmp dword [r14 + 0x94], ecx
jg 0x1400cde5e
mov r8d, edx
mov dword [rsp + 0x28], 1
mov edx, IStream_Read
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov rcx, r14
call fcn.1400489b0
jmp 0x1400cde8e
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0xfdb7
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], ebx
mov dword [rax + rcx*8 + 0x10], 1
test ebx, ebx
je 0x1400ce08d
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x1400ce08d
mov dword [rdi + rax*4 + 0xe8], ebx
inc byte [rdi + 0x1f]
jmp 0x1400ce08d
movzx esi, word [r12 + 0x18]
mov r13, qword [r12 + 0x20]
mov dword [rsp + 0x44], esi
cmp esi, 1
jne 0x1400cdef6
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1400cdedd
inc dword [rdi + 0x38]
lea r8, [rdi + 0x28]
mov eax, dword [rdi + 0x38]
mov dword [rsp + 0x30], eax
jmp 0x1400cdf24
dec al
lea r8, [rdi + 0x28]
movzx eax, al
mov byte [rdi + 0x1f], al
mov eax, dword [rdi + rax*4 + 0xe8]
mov dword [rsp + 0x30], eax
jmp 0x1400cdf24
mov ecx, dword [rdi + 0x28]
lea r8, [rdi + 0x28]
mov edx, dword [rdi + 0x2c]
mov dword [rsp + 0x30], edx
cmp esi, ecx
jg 0x1400cdf15
lea eax, [rdx + rsi]
sub ecx, esi
mov dword [rdi + 0x2c], eax
mov dword [r8], ecx
jmp 0x1400cdf24
mov eax, dword [rdi + 0x38]
lea ecx, [rax + 1]
add eax, esi
mov dword [rdi + 0x38], eax
mov dword [rsp + 0x30], ecx
xor r9d, r9d
mov rbx, r8
mov r15d, r9d
test esi, esi
je 0x1400cdff0
mov ebp, dword [rsp + 0x30]
mov r12d, r9d
mov r14, rsi
nop
mov rax, qword [r13 + 8]
movsx ecx, word [rax + r15*2]
cmp cx, 0xfffe
jne 0x1400cdfac
mov eax, dword [rsp + 0x34]
mov rsi, qword [rdi]
inc eax
mov dword [rdi + 0x40], eax
mov rax, qword [r13 + 0x50]
mov rdx, qword [rax + r12 + 8]
test rdx, rdx
je 0x1400cdf7c
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.1400646f0
mov rbx, rax
jmp 0x1400cdf7f
mov rbx, r9
cmp byte [rsi + 0x67], 0
jne 0x1400cdf93
mov r8d, ebp
mov rdx, rbx
mov rcx, rdi
call fcn.14006ce30
test rbx, rbx
je 0x1400cdfa3
mov rdx, rbx
mov rcx, rsi
call fcn.140064430
xor r9d, r9d
mov dword [rdi + 0x40], r9d
jmp 0x1400cdfc8
mov r8d, dword [rsp + 0x34]
mov r9d, ecx
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r13 + 0x18]
mov dword [rsp + 0x20], ebp
call fcn.140069d50
xor r9d, r9d
inc ebp
inc r15
add r12, 0x20
cmp r15, r14
jl 0x1400cdf40
mov r14, qword [rsp + 0x58]
lea rbx, [rdi + 0x28]
mov esi, dword [rsp + 0x44]
lea r8, [rdi + 0x28]
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0xe0]
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r15 + 0x34]
cmp dword [r14 + 0x94], ecx
jg 0x1400ce031
mov eax, dword [rsp + 0x30]
mov r8d, edx
mov edx, IStream_Read
mov dword [rsp + 0x28], esi
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.1400489b0
mov edx, dword [rsp + 0x30]
jmp 0x1400ce065
lea eax, [rcx + 1]
mov rbx, r8
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x30]
mov dword [rax + rcx*8 + 0xc], edx
mov dword [rax + rcx*8], 0xfdb7
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0x10], esi
cmp esi, 1
jne 0x1400ce082
test edx, edx
je 0x1400ce08b
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x1400ce08b
mov dword [rdi + rax*4 + 0xe8], edx
inc byte [rdi + 0x1f]
jmp 0x1400ce08b
cmp esi, dword [rbx]
jle 0x1400ce08b
mov dword [rbx], esi
mov dword [rdi + 0x2c], edx
xor esi, esi
mov rcx, qword [r14 + 0x18]
mov edx, dword [rsp + 0x38]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x1400ce0ac
mov r8d, edx
mov rdx, r14
call fcn.140049110
jmp 0x1400ce0bd
mov rcx, qword [rcx + 0x50]
mov eax, dword [r14 + 0x90]
movsxd rdx, edx
mov dword [rcx + rdx*4], eax
movsxd rbx, dword [rsp + 0x3c]
movsxd rcx, dword [r14 + 0x90]
mov r8d, dword [r15 + 4]
lea edx, [rbx + 1]
cmp dword [r14 + 0x94], ecx
jg 0x1400ce0ef
mov r9d, edx
mov dword [rsp + 0x20], esi
mov edx, 0x27
mov rcx, r14
call fcn.140048950
jmp 0x1400ce11d
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x27
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov rax, qword [r14]
lea r11, [0x140120770]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
je 0x1400ce139
mov rax, r11
jmp 0x1400ce148
mov rax, qword [r14 + 0x88]
lea rcx, [rbx + rbx*2]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
and dword [r12 + 0x38], 0xffbfffff
mov rax, qword [rdi]
test dword [rax + 0x60], 0x100000
jne 0x1400ce21e
mov esi, dword [rsp + 0xd8]
mov rbx, qword [rsp + 0x48]
inc esi
mov rbp, qword [rsp + 0xd0]
inc rbx
mov dword [rsp + 0xd8], esi
mov qword [rsp + 0x48], rbx
movzx r10d, byte [rbp + 0x40]
cmp esi, r10d
jge 0x1400ce213
mov r9, qword [rbp + 8]
mov r14, qword [rsp + 0xe8]
imul rdx, rbx, 0x70
add rdx, 0x3c0
add rdx, rbp
movzx eax, byte [rdx - 0x20]
lea r15, [rdx - 0x60]
imul rcx, rax, 0x68
mov qword [rsp + 0xe0], r15
test byte [rcx + r9 + 0x44], 0x48
jne 0x1400ce1ec
mov r12, qword [rdx]
test r12, r12
je 0x1400ce1ec
test qword [r12], r14
jne 0x1400ce1ec
mov eax, dword [r12 + 0x38]
and eax, 0x400004
cmp eax, 0x400000
je 0x1400ce1fa
inc esi
inc rbx
add rdx, 0x70
cmp rbx, r10
jl 0x1400ce1b1
mov r14, qword [rsp + 0x58]
cmp esi, r10d
mov dword [rsp + 0xd8], esi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r12
mov ebx, 0
jl 0x1400cdbc0
mov rax, qword [r14]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
jne 0x1400ce242
movsxd rax, dword [rsp + 0x40]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x88]
lea r11, [rax + rcx*8]
mov rax, qword [rsp + 0x68]
mov dword [r11 + 8], edx
mov qword [rdi + 0x60], rax
mov rax, qword [rsp + 0x70]
mov qword [rdi + 0x68], rax
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret