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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rbx, qword [rcx + 0x10]
xor esi, esi
mov dword [rax + 8], esi
mov r12d, r9d
mov dword [rax - 0x38], esi
mov r14d, r8d
mov rbp, rdx
mov rdi, rcx
mov r15d, esi
test rbx, rbx
je 0x18003fc3d
test rdx, rdx
je 0x18003fc3d
mov qword [rax + 0x10], r13
movzx eax, byte [rdx]
mov r13d, eax
add eax, 0xffffffed
xor r13d, 1
cmp eax, 0x81
ja case.0x18003f8db.20
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x3fc7c]
mov ecx, dword [rdx + rax*4 + 0x3fc58]
add rcx, rdx
jmp rcx
mov rdx, qword [rbp + 0x10]
mov rcx, rdi
call fcn.18003f860
inc dword [rdi + 0x70]
mov r9d, r12d
mov rdx, qword [rbp + 0x18]
mov r8d, r14d
mov rcx, rdi
call fcn.18003f860
mov rcx, rdi
call fcn.18003d5d0
jmp 0x18003fc35
mov r15, qword [rbx + 0x30]
movsxd rsi, dword [r15 + 0x78]
lea eax, [rsi + 1]
mov dword [r15 + 0x78], eax
lea eax, [rsi - 1]
test esi, eax
jne 0x18003f945
mov rdx, qword [r15 + 0x80]
lea eax, [rsi*2 + 1]
mov rcx, qword [r15]
movsxd r8, eax
shl r8, 2
call fcn.1800054c0
mov qword [r15 + 0x80], rax
mov rcx, qword [r15 + 0x80]
test rcx, rcx
je 0x18003f958
mov dword [rcx + rsi*4], 0xffffffff
mov rdx, qword [rbp + 0x10]
mov r9d, r12d
mov r8d, esi
xor r9d, 0x10
not r8d
mov rcx, rdi
call fcn.18003f3b0
inc dword [rdi + 0x70]
mov r9d, r12d
mov rdx, qword [rbp + 0x18]
mov r8d, r14d
mov rcx, rdi
call fcn.18003f860
mov r8, qword [rbx + 0x30]
test esi, esi
js 0x18003f9a0
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x18003f9a0
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rsi*4], eax
mov eax, dword [rbx + 0x3c]
mov rcx, rdi
dec eax
mov dword [r8 + 0x64], eax
call fcn.18003d5d0
jmp 0x18003fc35
mov rdx, qword [rbp + 0x10]
mov rcx, rdi
call fcn.18003f3b0
jmp 0x18003fc35
mov rdx, qword [rbp + 0x10]
lea r8, [rsp + 0x80]
mov rcx, rdi
call fcn.18003eed0
mov rdx, qword [rbp + 0x18]
lea r8, [rsp + 0x40]
mov rcx, rdi
mov ebx, eax
call fcn.18003eed0
mov r8, qword [rbp + 0x18]
mov r9d, r13d
mov rdx, qword [rbp + 0x10]
mov rcx, rdi
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.180039b80
mov r15d, dword [rsp + 0x40]
jmp 0x18003fbc4
mov rdx, qword [rbp + 0x10]
lea r8, [rsp + 0x80]
mov rcx, rdi
call fcn.18003eed0
mov rdx, qword [rbp + 0x18]
lea r8, [rsp + 0x40]
mov rcx, rdi
mov ebx, eax
call fcn.18003eed0
cmp byte [rbp], 0x49
mov r9d, esi
mov r8, qword [rbp + 0x18]
mov rcx, rdi
mov rdx, qword [rbp + 0x10]
setne r9b
mov dword [rsp + 0x38], 0x80
add r9d, 0x4e
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.180039b80
mov r15d, dword [rsp + 0x40]
jmp 0x18003fbc4
mov rdx, qword [rbp + 0x10]
lea r8, [rsp + 0x80]
mov rcx, rdi
call fcn.18003eed0
mov edx, r13d
mov dword [rsp + 0x20], esi
jmp 0x18003fbb6
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov rdx, rbp
mov rcx, rdi
call fcn.18003f260
jmp 0x18003fc35
test r12d, r12d
je 0x18003fad2
mov r9d, r14d
mov rdx, rbp
mov rcx, rdi
call fcn.18003c7f0
jmp 0x18003fc35
mov r15, qword [rbx + 0x30]
movsxd rsi, dword [r15 + 0x78]
lea eax, [rsi + 1]
mov dword [r15 + 0x78], eax
lea eax, [rsi - 1]
test esi, eax
jne 0x18003fb0c
mov rdx, qword [r15 + 0x80]
lea eax, [rsi*2 + 1]
mov rcx, qword [r15]
movsxd r8, eax
shl r8, 2
call fcn.1800054c0
mov qword [r15 + 0x80], rax
mov rcx, qword [r15 + 0x80]
test rcx, rcx
je 0x18003fb1f
mov dword [rcx + rsi*4], 0xffffffff
mov r9d, esi
mov r8d, r14d
not r9d
mov rdx, rbp
mov rcx, rdi
call fcn.18003c7f0
mov r8, qword [rbx + 0x30]
test esi, esi
js 0x18003fb4d
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x18003fb4d
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rsi*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r8 + 0x64], eax
jmp 0x18003fc35
mov rcx, rbp
call fcn.18003a1f0
test eax, eax
je 0x18003fb82
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov r9d, r14d
mov rcx, rbx
lea edx, [r8 + 0x10]
call fcn.180025a50
jmp 0x18003fc35
mov rcx, rbp
call fcn.18003a160
test eax, eax
jne 0x18003fc35
lea r8, [rsp + 0x80]
mov rdx, rbp
mov rcx, rdi
call fcn.18003eed0
mov ecx, esi
test r12d, r12d
mov edx, 0x2e
setne cl
mov dword [rsp + 0x20], ecx
mov r9d, r14d
mov r8d, eax
mov rcx, rbx
call fcn.180025a50
mov edx, dword [rsp + 0x80]
test edx, edx
je 0x18003fc01
movzx r8d, byte [rdi + 0x1f]
cmp r8b, 8
jae 0x18003fc01
mov ecx, esi
lea rax, [rdi + 0x88]
cmp dword [rax + 0xc], edx
je 0x18003fbfd
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x18003fbe3
mov dword [rdi + r8*4 + 0x24], edx
inc byte [rdi + 0x1f]
jmp 0x18003fc01
mov byte [rax + 6], 1
test r15d, r15d
je 0x18003fc35
movzx ecx, byte [rdi + 0x1f]
cmp cl, 8
jae 0x18003fc35
lea rax, [rdi + 0x88]
cmp dword [rax + 0xc], r15d
je 0x18003fc31
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x18003fc16
mov dword [rdi + rcx*4 + 0x24], r15d
inc byte [rdi + 0x1f]
jmp 0x18003fc35
mov byte [rax + 6], 1
mov r13, qword [rsp + 0x88]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret