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

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rbx, qword [rcx + 0x10]
mov r14, qword [rcx]
mov rsi, rcx
xor edi, edi
add rbx, 0x38
xor r12d, r12d
lea edx, [rdi + 8]
mov rcx, rbx
xor r15d, r15d
call fcn.14023c210
cmp dword [rsi + 0x84], 7
mov qword [rsi + 0x28], rdi
jne 0x14023c459
mov byte [r14 + 0x50], 1
lea eax, [rdi + 1]
mov rbx, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov r9d, dword [rsi + 0x8c]
mov r10d, dword [rsi + 0x3c]
mov qword [rsp + 0x50], rbp
and r9d, 3
cmp r9d, 1
jne 0x14023c4dd
mov r15, qword [rsi + 0x10]
add r15, 0x1f8
test byte [r15 + 0x24], 0x10
je 0x14023c491
movsxd r12, dword [r15 + 0x20]
mov rdi, qword [r15 + 8]
shr r12, 3
movsxd rbp, r12d
xor edx, edx
xor r8d, r8d
xor ecx, ecx
cmp rbp, 2
jl 0x14023c4c9
lea r11, [rbp - 1]
nop word [rax + rax]
mov rax, qword [rdi + rcx*8]
add rcx, 2
add edx, dword [rax + 8]
mov rax, qword [rdi + rcx*8 - 8]
add r8d, dword [rax + 8]
cmp rcx, r11
jl 0x14023c4b0
cmp rcx, rbp
jge 0x14023c4d6
mov rax, qword [rdi + rcx*8]
add r10d, dword [rax + 8]
lea eax, [r8 + rdx]
add r10d, eax
mov qword [rsp + 0x58], r13
nop dword [rax]
nop word [rax + rax]
movsxd rdx, dword [rsi + 0x80]
lea eax, [rdx + 1]
mov dword [rsi + 0x80], eax
cmp edx, r10d
jge 0x14023c8b7
cmp r9d, 2
jne 0x14023c51d
mov rax, qword [rsi + 8]
lea rcx, [rdx + rdx*2]
cmp byte [rax + rcx*8], 0x9c
jne 0x14023c4f0
mov eax, dword [r14 + 0x138]
test eax, eax
je 0x14023c564
mov rax, qword [0x140330018]
lea r9, [0x14033aaa8]
lea rcx, [rsi + 0x48]
test rax, rax
lea r8, [0x140374da0]
mov rdx, r14
cmovne r9, rax
mov dword [rsi + 0x84], 9
mov edi, 1
call fcn.14021bdc0
jmp 0x14023c8c6
mov eax, dword [rsi + 0x3c]
cmp edx, eax
jge 0x14023c578
mov rax, qword [rsi + 8]
mov r8, rdx
lea rcx, [rdx + rdx*2]
jmp 0x14023c5b6
sub edx, eax
mov rax, qword [rdi]
xor r9d, r9d
mov ecx, dword [rax + 8]
cmp edx, ecx
jl 0x14023c5a5
xor r8d, r8d
nop word [rax + rax]
mov rax, qword [rdi + r8*8 + 8]
sub edx, ecx
lea r8, [r8 + 1]
mov ecx, dword [rax + 8]
inc r9d
cmp edx, ecx
jge 0x14023c590
movsxd rax, r9d
movsxd r8, edx
mov rax, qword [rdi + rax*8]
lea rcx, [r8 + r8*2]
mov rax, qword [rax]
lea r13, [rax + rcx*8]
mov eax, dword [rsi + 0x8c]
mov r14d, 4
and al, 3
mov ecx, 0xa02
cmp al, 1
jne 0x14023c686
mov word [rbx + 0x24], r14w
mov qword [rbx + 0x18], r8
mov word [rbx + 0x5c], cx
movzx eax, byte [r13]
lea rcx, [0x14032f950]
mov rcx, qword [rcx + rax*8]
mov qword [rbx + 0x40], rcx
mov rax, rcx
test rcx, rcx
je 0x14023c612
cmp byte [rcx], 0
je 0x14023c60b
inc rax
cmp byte [rax], 0
jne 0x14023c603
sub eax, ecx
and eax, 0x3fffffff
mov dword [rbx + 0x58], eax
mov byte [rbx + 0x5e], 1
add rbx, 0x70
cmp byte [r13 + 1], 0xee
jne 0x14023c686
xor ecx, ecx
lea ebp, [r12*8 + 8]
test r12d, r12d
jle 0x14023c650
mov rdx, qword [r13 + 0x10]
xor eax, eax
movsxd r8, r12d
nop dword [rax]
cmp qword [rdi + rax*8], rdx
je 0x14023c650
inc rax
inc ecx
cmp rax, r8
jl 0x14023c640
cmp ecx, r12d
jne 0x14023c686
xor r8d, r8d
test r12d, r12d
mov edx, ebp
setne r8b
mov rcx, r15
call fcn.140239a10
test eax, eax
jne 0x14023c686
mov rax, qword [r13 + 0x10]
mov rcx, qword [r15 + 8]
movsxd rdx, r12d
mov qword [rcx + rdx*8], rax
or word [r15 + 0x24], 0x10
mov dword [r15 + 0x20], ebp
mov word [rbx + 0x24], r14w
movsxd rax, dword [r13 + 4]
xor r8d, r8d
mov qword [rbx + 0x18], rax
mov word [rbx + 0x5c], r14w
movsxd rax, dword [r13 + 8]
mov qword [rbx + 0x50], rax
mov word [rbx + 0x94], r14w
movsxd rax, dword [r13 + 0xc]
mov qword [rbx + 0x88], rax
add rbx, 0xa8
lea edx, [r8 + 0x20]
mov rcx, rbx
call fcn.140239a10
test eax, eax
jne 0x14023c845
mov rdx, qword [rbx + 8]
mov r12d, 0x202
mov rcx, r13
mov word [rbx + 0x24], r12w
call fcn.14023bcc0
mov rcx, qword [rbx + 8]
mov rbp, rax
cmp rax, rcx
je 0x14023c7f3
test rax, rax
jne 0x14023c741
test byte [rbx + 0x24], 0x40
je 0x14023c71c
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rdx]
mov rax, qword [rcx + 0xf8]
mov qword [rdx + 8], rax
mov qword [rcx + 0xf8], rdx
test byte [rbx + 0x24], 0x20
je 0x14023c72b
mov rcx, qword [rbx + 0x18]
call fcn.140225290
mov eax, 0xbe01
and word [rbx + 0x24], ax
or word [rbx + 0x24], 1
xor r15d, r15d
jmp 0x14023c821
mov rax, qword [rbx]
test rax, rax
je 0x14023c74e
mov ecx, dword [rax + 0x68]
jmp 0x14023c753
mov ecx, 0x3b9aca00
xor r15d, r15d
movsxd rcx, ecx
mov edi, r15d
mov eax, r15d
test rcx, rcx
js 0x14023c774
cmp byte [rax + rbp], r15b
je 0x14023c774
inc rax
inc edi
cmp rax, rcx
jle 0x14023c764
lea rax, [0x14021b7e0]
movzx r14d, r12w
test rax, rax
mov eax, 0x2460
jne 0x14023c7b2
test word [rbx + 0x24], ax
je 0x14023c797
mov rcx, rbx
call fcn.140239e70
mov rdx, qword [rbx + 0x30]
test rdx, rdx
je 0x14023c7ac
mov rcx, qword [rbx]
call fcn.14021b8a0
mov qword [rbx + 0x30], r15
mov qword [rbx + 0x30], rbp
jmp 0x14023c7db
test word [rbx + 0x24], ax
je 0x14023c7c0
mov rcx, rbx
call fcn.140239e70
mov rdx, qword [rbx + 0x30]
test rdx, rdx
je 0x14023c7d5
mov rcx, qword [rbx]
call fcn.14021b8a0
mov qword [rbx + 0x30], r15
mov r14d, 0xa02
mov word [rbx + 0x24], r14w
mov qword [rbx + 0x28], r15
mov qword [rbx + 8], rbp
mov r14d, 4
mov dword [rbx + 0x20], edi
jmp 0x14023c81d
mov rax, rcx
test rcx, rcx
jne 0x14023c803
xor r15d, r15d
mov eax, r15d
jmp 0x14023c81a
cmp byte [rcx], 0
je 0x14023c810
inc rax
cmp byte [rax], 0
jne 0x14023c808
sub eax, ecx
and eax, 0x3fffffff
xor r15d, r15d
mov dword [rbx + 0x20], eax
mov byte [rbx + 0x26], 1
mov eax, dword [rsi + 0x8c]
mov ebp, 2
and al, 3
cmp al, 1
jne 0x14023c881
lea rcx, [rbx + 0x38]
xor r8d, r8d
mov edx, r14d
call fcn.140239a10
test eax, eax
je 0x14023c84f
mov eax, 1
jmp 0x14023c8c8
mov rdx, qword [rbx + 0x40]
mov word [rbx + 0x5c], r12w
mov dword [rbx + 0x58], ebp
movzx r9d, byte [r13 + 3]
lea r8, str._.2x
mov ecx, 3
call fcn.14021d710
mov edi, 1
mov byte [rbx + 0x5e], 1
mov word [rbx + 0x94], di
movzx eax, word [rsi + 0x8c]
mov dword [rsi + 0x84], r15d
mov edi, 0x64
and ax, 3
dec ax
sub bp, ax
mov rax, qword [rsi + 0x10]
shl bp, 2
add rax, 0x38
mov qword [rsi + 0x28], rax
mov word [rsi + 0x88], bp
jmp 0x14023c8c6
mov dword [rsi + 0x84], 0
mov edi, 0x65
mov eax, edi
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret