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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xf8
mov r8, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0x60]
call fcn.1401b0d80
mov rcx, rax
call fcn.1401ad010
test eax, eax
je 0x1401c390f
xor eax, eax
test eax, eax
je 0x1401c3903
lea rcx, str.not_enough_space_remaining
call fcn.1401c27b0
mov rax, 0xffffffffffffffba
jmp 0x1401c3ef9
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x118]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
mov r8d, eax
mov rdx, qword [rsp + 0x110]
lea rcx, [rsp + 0x90]
call fcn.1401b1cc0
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x128]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
mov r8d, eax
mov rdx, qword [rsp + 0x120]
lea rcx, [rsp + 0xb0]
call fcn.1401b1cc0
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
mov r8d, eax
mov rdx, qword [rsp + 0x130]
lea rcx, [rsp + 0xd0]
call fcn.1401b1cc0
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
lea rcx, [0x1402b78f8]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
movzx ecx, word [rcx + rdx*8 - 4]
mov r8d, eax
mov edx, ecx
lea rcx, [rsp + 0x60]
call fcn.1401c3030
call fcn.1401af3b0
test eax, eax
je 0x1401c3a01
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x118]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
lea rcx, [0x1402b7968]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
movzx ecx, word [rcx + rdx*8 - 2]
mov r8d, eax
mov edx, ecx
lea rcx, [rsp + 0x60]
call fcn.1401c3030
call fcn.1401af3b0
test eax, eax
je 0x1401c3a5d
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
cmp dword [rsp + 0x150], 0
je 0x1401c3b61
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x128]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
mov dword [rsp + 0x30], eax
call fcn.1401af3b0
test eax, eax
je 0x1401c3a9c
mov dword [rsp + 0x44], 0x19
jmp 0x1401c3aa4
mov dword [rsp + 0x44], 0x39
mov eax, dword [rsp + 0x44]
dec eax
cmp dword [rsp + 0x30], eax
jae 0x1401c3aba
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x4c], eax
jmp 0x1401c3adf
call fcn.1401af3b0
test eax, eax
je 0x1401c3acd
mov dword [rsp + 0x48], 0x19
jmp 0x1401c3ad5
mov dword [rsp + 0x48], 0x39
mov eax, dword [rsp + 0x48]
dec eax
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x1401c3b25
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
mov eax, dword [rax + rcx*8 - 8]
mov r8d, dword [rsp + 0x34]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1401c3030
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x140]
mov r8, qword [rsp + 0x148]
mov edx, dword [rdx + r8*8 - 8]
shr edx, cl
mov ecx, edx
mov ecx, ecx
mov r8d, eax
mov edx, ecx
lea rcx, [rsp + 0x60]
call fcn.1401c3030
jmp 0x1401c3b9e
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x128]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax - 1]
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
mov ecx, dword [rcx + rdx*8 - 8]
mov r8d, eax
mov edx, ecx
lea rcx, [rsp + 0x60]
call fcn.1401c3030
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov rax, qword [rsp + 0x148]
sub rax, 2
mov qword [rsp + 0x28], rax
jmp 0x1401c3bc8
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x148]
cmp qword [rsp + 0x28], rax
jae 0x1401c3e83
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov byte [rsp + 0x22], al
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x128]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov byte [rsp + 0x20], al
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x118]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov byte [rsp + 0x21], al
movzx eax, byte [rsp + 0x22]
lea rcx, [0x1402b78f8]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x20]
mov dword [rsp + 0x24], eax
movzx eax, byte [rsp + 0x21]
lea rcx, [0x1402b7968]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x38], eax
movzx eax, byte [rsp + 0x20]
mov r8d, eax
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x60]
call fcn.1401c3180
movzx eax, byte [rsp + 0x21]
mov r8d, eax
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x60]
call fcn.1401c3180
call fcn.1401af3b0
test eax, eax
je 0x1401c3ca1
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
movzx eax, byte [rsp + 0x22]
mov r8d, eax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x60]
call fcn.1401c3180
call fcn.1401af3b0
test eax, eax
jne 0x1401c3cd9
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x3c]
cmp eax, 0x1f
jb 0x1401c3ce3
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rax + rcx*8 + 4]
mov r8d, dword [rsp + 0x3c]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1401c3030
call fcn.1401af3b0
test eax, eax
je 0x1401c3d2a
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
cmp eax, 0x18
jbe 0x1401c3d2a
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rax + rcx*8 + 6]
mov r8d, dword [rsp + 0x38]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1401c3030
call fcn.1401af3b0
test eax, eax
jne 0x1401c3d6b
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x3c]
cmp eax, 0x38
jbe 0x1401c3d75
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
cmp dword [rsp + 0x150], 0
je 0x1401c3e53
call fcn.1401af3b0
test eax, eax
je 0x1401c3d96
mov dword [rsp + 0x50], 0x19
jmp 0x1401c3d9e
mov dword [rsp + 0x50], 0x39
mov eax, dword [rsp + 0x50]
dec eax
cmp dword [rsp + 0x24], eax
jae 0x1401c3db4
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x58], eax
jmp 0x1401c3dd9
call fcn.1401af3b0
test eax, eax
je 0x1401c3dc7
mov dword [rsp + 0x54], 0x19
jmp 0x1401c3dcf
mov dword [rsp + 0x54], 0x39
mov eax, dword [rsp + 0x54]
dec eax
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x24]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
je 0x1401c3e1b
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
mov eax, dword [rax + rcx*8]
mov r8d, dword [rsp + 0x40]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1401c3030
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x24]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x140]
mov r8, qword [rsp + 0x28]
mov edx, dword [rdx + r8*8]
shr edx, cl
mov ecx, edx
mov ecx, ecx
mov r8d, eax
mov edx, ecx
lea rcx, [rsp + 0x60]
call fcn.1401c3030
jmp 0x1401c3e74
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
mov eax, dword [rax + rcx*8]
mov r8d, dword [rsp + 0x24]
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1401c3030
lea rcx, [rsp + 0x60]
call fcn.1401b0c10
jmp 0x1401c3bbb
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x60]
call fcn.1401c3230
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x60]
call fcn.1401c3230
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x60]
call fcn.1401c3230
lea rcx, [rsp + 0x60]
call fcn.1401b0b90
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
jne 0x1401c3ef1
xor eax, eax
test eax, eax
je 0x1401c3ee8
lea rcx, str.not_enough_space
call fcn.1401c27b0
mov rax, 0xffffffffffffffba
jmp 0x1401c3ef9
mov rax, qword [rsp + 0x88]
add rsp, 0xf8
ret