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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r13, qword [rcx]
xor r15d, r15d
mov rdi, rcx
cmp byte [rcx + 0x1e], r15b
jne 0x14003ffe2
cmp byte [r13 + 0x63], r15b
jne 0x14003ffd2
cmp dword [rcx + 0x30], r15d
jne 0x14003ffd2
mov rsi, qword [rcx + 0x10]
test rsi, rsi
jne 0x14003fbe8
cmp byte [r13 + 0xbd], r15b
je 0x14003fbcd
mov dword [rcx + 0x18], 0x65
jmp 0x14003ffe2
call fcn.14005896c
mov rsi, rax
test rax, rax
jne 0x14003fbe8
lea ebp, [rax + 1]
mov dword [rdi + 0x18], ebp
mov dword [rdi + 0x18], ebp
jmp 0x14003ffe2
mov ebp, 1
cmp byte [rdi + 0xcd], r15b
je 0x14003fcac
mov r12, qword [rdi + 0xb8]
lea edx, [rbp + 0x24]
xor r9d, r9d
mov r8d, dword [r12 + 0xb8]
mov rcx, rsi
mov dword [rsp + 0x20], r15d
call fcn.140020f34
mov r14d, dword [r12 + 0xc0]
xor ebx, ebx
mov r15d, eax
cmp dword [r12 + 0xbc], ebx
jle 0x14003fc5f
mov r8d, dword [r12 + 0xb8]
lea ecx, [rbx + r14]
mov r9d, ebx
mov dword [rsp + 0x20], ecx
mov rcx, rsi
mov edx, 0x5b
call fcn.140020f34
add ebx, ebp
cmp ebx, dword [r12 + 0xbc]
jl 0x14003fc33
and dword [rsp + 0x20], 0
mov r9d, ebx
mov r8d, r14d
mov edx, 0x51
mov rcx, rsi
call fcn.140020f34
mov r8d, dword [r12 + 0xb8]
and dword [rsp + 0x20], 0
lea r9d, [r15 + 1]
mov edx, 5
mov rcx, rsi
call fcn.140020f34
mov edx, r15d
mov rcx, rsi
call fcn.140021a4c
mov ecx, dword [rsi + 0x90]
xor r15d, r15d
mov dword [rax + 8], ecx
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
lea edx, [r9 + 0x44]
mov dword [rsp + 0x20], r15d
call fcn.140020f34
cmp byte [r13 + 0x63], r15b
jne 0x14003ffa1
cmp dword [rdi + 0x74], r15d
jne 0x14003fcdd
cmp qword [rdi + 0x58], r15
je 0x14003ffa1
mov rax, qword [rsi]
mov ecx, dword [rsi + 0x90]
cmp byte [rax + 0x63], r15b
lea rax, [0x1400d78e0]
jne 0x14003fcfa
mov rax, qword [rsi + 0x88]
mov dword [rax + 8], ecx
mov ebx, r15d
cmp dword [r13 + 0x28], r15d
jle 0x14003fd82
mov r12, r15
mov ecx, ebx
mov r11d, ebp
shl r11d, cl
test dword [rdi + 0x74], r11d
je 0x14003fd76
mov edx, ebx
mov rcx, rsi
call fcn.140021dc0
mov r10, qword [r13 + 0x20]
test dword [rdi + 0x70], r11d
mov rcx, qword [r10 + r12 + 0x18]
mov r9d, r15d
mov r8d, ebx
mov eax, dword [rcx + 4]
setne r9b
mov edx, 2
mov dword [rsp + 0x28], eax
mov eax, dword [rcx]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400213b8
cmp byte [r13 + 0xbd], r15b
jne 0x14003fd76
movsxd rax, dword [rsi + 0x90]
test eax, eax
jle 0x14003fd76
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov word [rax + rcx*8 - 0x16], bp
add ebx, ebp
add r12, 0x20
cmp ebx, dword [r13 + 0x28]
jl 0x14003fd09
mov r14d, r15d
cmp dword [rdi + 0x118], r15d
jle 0x14003fdeb
mov r12, r15
mov rax, qword [rdi + 0x170]
mov rcx, qword [r12 + rax]
mov rbx, qword [rcx + 0x60]
jmp 0x14003fdab
cmp qword [rbx], r13
je 0x14003fdb0
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14003fda2
xor r9d, r9d
xor r8d, r8d
mov edx, 0xa6
mov rcx, rsi
mov dword [rsp + 0x20], r15d
call fcn.140020f34
mov r9d, 0xfffffff4
mov r8, rbx
mov edx, eax
mov rcx, rsi
call fcn.14002195c
add r14d, ebp
add r12, 8
cmp r14d, dword [rdi + 0x118]
jl 0x14003fd91
xor r14d, r14d
mov dword [rdi + 0x118], r15d
mov r15, qword [rdi + 0x10]
cmp dword [rdi + 0x88], r14d
jle 0x14003fe52
xor r12d, r12d
mov rcx, qword [rdi + 0x90]
mov edx, 0xa5
movzx eax, byte [r12 + rcx + 8]
mov r9d, dword [r12 + rcx + 4]
mov r8d, dword [r12 + rcx]
mov rbx, qword [r12 + rcx + 0x10]
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.140020f34
or r9d, 0xffffffff
mov r8, rbx
mov edx, eax
mov rcx, r15
call fcn.14002195c
add r14d, ebp
add r12, 0x18
cmp r14d, dword [rdi + 0x88]
jl 0x14003fe05
mov r15, qword [rdi]
mov r14, qword [rdi + 0x10]
mov r12, qword [rdi + 0x98]
jmp 0x14003ff13
movsxd r8, dword [r12 + 0x10]
mov rax, qword [r15 + 0x20]
mov ebx, dword [r12 + 0x14]
mov r9, r8
xor edx, edx
mov rcx, rdi
shl r9, 5
mov dword [rsp + 0x20], 0x62
mov r9, qword [r9 + rax + 0x18]
mov r9, qword [r9 + 0x68]
call fcn.14004c928
mov r8, qword [r12 + 8]
lea edx, [rbx - 1]
mov r8, qword [r8]
mov rcx, r14
call fcn.140020fb0
lea r8, [0x1400b8e00]
mov edx, 0xc
mov rcx, r14
call fcn.1400215f8
test rax, rax
je 0x14003ff1c
mov dword [rax + 8], ebx
mov dword [rax + 0x3c], ebx
mov dword [rax + 0x54], ebx
mov dword [rax + 0x84], ebx
mov dword [rax + 0x94], ebx
mov dword [rax + 0xac], ebx
mov dword [rax + 0xf8], ebx
lea ecx, [rbx - 1]
lea edx, [rbx + 2]
mov dword [rax + 0x4c], ecx
mov dword [rax + 0xc], edx
mov dword [rax + 0xb0], edx
mov ecx, 0x10
mov word [rax + 0x4a], cx
lea ecx, [rbx + 1]
mov dword [rax + 0x68], ecx
mov eax, dword [rdi + 0x34]
cmp eax, 0
cmove eax, ebp
mov dword [rdi + 0x34], eax
mov r12, qword [r12]
test r12, r12
jne 0x14003fe65
mov rbx, qword [rdi + 0x58]
xor r15d, r15d
test rbx, rbx
je 0x14003ff5a
mov byte [rdi + 0x23], r15b
mov r14d, r15d
cmp dword [rbx], r15d
jle 0x14003ff5a
lea r12, [rbx + 8]
mov r8d, dword [r12 + 0x18]
test r8d, r8d
jle 0x14003ff4e
mov rdx, qword [r12]
mov rcx, rdi
call fcn.140038afc
add r14d, ebp
add r12, 0x20
cmp r14d, dword [rbx]
jl 0x14003ff38
cmp byte [rdi + 0xcd], r15b
je 0x14003ff8a
mov rax, qword [rdi + 0xb8]
mov edx, 0x70
mov rcx, rsi
mov r9d, dword [rax + 0xbc]
mov r8d, dword [rax + 0xb8]
mov dword [rsp + 0x20], r15d
call fcn.140020f34
xor r8d, r8d
mov r9d, ebp
mov rcx, rsi
lea edx, [r8 + 0xb]
mov dword [rsp + 0x20], r15d
call fcn.140020f34
test rsi, rsi
je 0x14003fbe0
cmp dword [rdi + 0x30], r15d
jne 0x14003fbe0
cmp byte [r13 + 0x63], r15b
jne 0x14003fbe0
mov rdx, rdi
mov rcx, rsi
call fcn.140022508
mov dword [rdi + 0x18], 0x65
jmp 0x14003ffe2
mov eax, dword [rcx + 0x18]
mov ebp, 1
test eax, eax
cmove eax, ebp
mov dword [rcx + 0x18], eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret