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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
xor ebx, ebx
mov rax, qword [rcx]
mov qword [rsp + 0x30], rdx
mov edx, 1
mov rsi, rcx
mov rdi, r8
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xa0], rbx
call fcn.140200190
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rcx, qword [rsi + 8]
mov r8, qword [rsp + 0x30]
mov edx, 1
call fcn.14023aa40
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rbp, qword [rsi]
cmp dword [rbp + 0x44], 0
je 0x14023cc28
xor r11d, r11d
xor r9d, r9d
mov edx, 8
mov rcx, rsi
lea r8, [rsp + 0xb0]
mov qword [rsp + 0xb0], r11
call fcn.1401ffbb0
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rbx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call fcn.140268a60
mov rcx, rbx
call fcn.14026e550
cmp eax, 0x64
jne 0x14023cd82
mov edx, 1
mov rcx, rbx
call fcn.1402698b0
mov rcx, rbx
mov qword [rsp + 0x58], rax
call fcn.14026d600
mov r14d, eax
test eax, eax
jne 0x14023cda6
cmp qword [rsp + 0x58], 0
je 0x14023cda6
mov rdi, qword [rsi + 8]
mov rcx, rdi
call fcn.140200710
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14023cc1a
mov eax, dword [rax + 0x1c]
mov dword [rsp + 0x48], eax
dec eax
cdqe
mov qword [rsp + 0x60], rax
xor eax, eax
cmp dword [rsp + 0x60], 0
js 0x14023cc10
mov rbx, qword [rsp + 0x60]
shl rbx, 4
mov qword [rsp + 0x90], rbx
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x90]
mov ebx, dword [rbx + rcx + 0x24]
mov dword [rsp + 0x48], ebx
dec ebx
movsxd rdx, ebx
mov dword [rsp + 0x68], ebx
imul rbx, rdx, 0x38
mov qword [rsp + 0x88], rbx
cmp dword [rsp + 0x68], 0
js 0x14023cc06
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x90]
mov r12, qword [rsp + 0x88]
add r12, qword [rbx + rcx + 0x28]
mov rbx, qword [rsp + 0x58]
cmp rbx, qword [r12 + 0x10]
jb 0x14023cbf4
cmp qword [r12 + 0x18], rbx
jb 0x14023cbf4
test eax, eax
jne 0x14023c825
inc qword [r12 + 0x28]
mov edx, dword [r12 + 0x20]
inc dword [rdi + 0x34]
test edx, edx
jle 0x14023c8d0
mov rax, qword [rsp + 0x30]
movsxd rbx, edx
xor edx, edx
mov rcx, rdi
div rbx
mov eax, dword [r12]
mov dword [rsp + 0x98], edx
mov rbx, rdx
lea edx, [rax + 0x10000]
shl rdx, 0x25
add rdx, rbx
call fcn.1401f4670
mov r14, rax
test rax, rax
je 0x14023c8ad
mov r9, qword [rsp + 0x30]
mov r8d, dword [r12 + 0x20]
xor edx, edx
mov rcx, rax
call fcn.1401f9640
test eax, eax
jne 0x14023c8b7
mov edx, dword [r12]
mov r9d, dword [r14 + 8]
mov rcx, rdi
mov r8, qword [r14]
add edx, 0x10000
shl rdx, 0x25
add rdx, rbx
call fcn.1401f47b0
mov rcx, r14
call fcn.14026bb70
mov eax, 1
jmp 0x14023cbf4
mov rax, qword [r14]
cmp byte [rax], 4
setne al
movzx eax, al
lea eax, [rax*4 + 4]
mov dword [rsp + 0x48], eax
jmp 0x14023c8e6
mov dword [rsp + 0x98], 0xffffffff
xor r14d, r14d
mov dword [rsp + 0x48], 4
mov rbx, qword [rsp + 0x30]
mov eax, 0xffffffff
cmp rax, rbx
mov eax, 8
cmovae eax, dword [rsp + 0x48]
mov ebx, dword [r12 + 0x20]
mov dword [rsp + 0x48], eax
mov rax, qword [rdi]
mov eax, dword [rax + 0x88]
sub eax, 8
cdq
idiv dword [rsp + 0x48]
mov edx, 0x20
cmp eax, edx
cmovge edx, eax
mov dword [rsp + 0x6c], edx
test ebx, ebx
je 0x14023c95e
cmp ebx, 1
jne 0x14023c953
mov rax, qword [r14]
lea rcx, [rax + 4]
call fcn.1401f7bc0
lea r13d, [rax*4]
mov eax, 0x20
cmp r13d, eax
cmovl r13d, eax
cmp edx, r13d
jge 0x14023c969
mov r13d, dword [rsp + 0x6c]
lea ebx, [rbx + rbx + 1]
jmp 0x14023c969
mov ebx, 1
mov r13d, 0x20
lea rax, [rdi + 0x3c]
mov qword [rsp + 0x80], rax
movsxd rax, ebx
mov rcx, qword [rsp + 0x80]
xor r15d, r15d
lea rdx, [rax*8]
mov qword [rsp + 0x78], rax
call fcn.14023b880
mov rbp, rax
mov eax, dword [rsp + 0x48]
imul r13d, eax
add r13d, 8
movsxd rax, r13d
add rax, 0x10
mov qword [rsp + 0x40], rax
cmp ebx, r15d
jle 0x14023c9e1
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
call fcn.14023b880
test rax, rax
je 0x14023c9dc
lea rdx, [rax + 0x10]
mov dword [rax + 8], r13d
mov qword [rax], rdx
mov qword [rbp + r15*8], rax
inc r15
jmp 0x14023c9b0
cmp dword [rdi + 0x3c], 0
jne 0x14023cb64
xor eax, eax
cmp ebx, eax
jle 0x14023ca13
mov rdx, qword [rbp + rax*8]
mov cl, byte [rsp + 0x48]
xor r10d, r10d
mov rdx, qword [rdx]
mov byte [rdx], cl
mov rdx, qword [rbp + rax*8]
inc rax
mov rdx, qword [rdx]
mov dword [rdx + 4], r10d
jmp 0x14023c9ed
xor r13d, r13d
cmp r13d, dword [r12 + 0x20]
jl 0x14023ca2c
cmp dword [rdi + 0x3c], 0
je 0x14023cb74
jmp 0x14023cb64
cmp dword [rsp + 0x98], r13d
je 0x14023ca59
mov eax, dword [r12]
mov rcx, rdi
lea edx, [rax + 0x10000]
shl rdx, 0x25
add rdx, r13
call fcn.1401f4670
mov qword [rsp + 0x70], rax
mov r15, rax
jmp 0x14023ca64
xor r9d, r9d
mov r15, r14
mov qword [rsp + 0x70], r9
test r15, r15
jne 0x14023ca78
mov rcx, qword [rsp + 0x70]
inc r13
call fcn.14026bb70
jmp 0x14023ca16
mov rax, qword [r15]
cmp byte [rax], 4
setne al
xor r8d, r8d
movzx eax, al
mov qword [rsp + 0x40], r8
lea eax, [rax*4 + 4]
mov dword [rsp + 0x4c], eax
mov eax, dword [r15 + 8]
sub eax, 8
cdq
idiv dword [rsp + 0x4c]
mov dword [rsp + 0x9c], eax
mov ecx, dword [rsp + 0x40]
cmp dword [rsp + 0x9c], ecx
jle 0x14023cb18
cmp dword [rsp + 0x4c], 4
mov rax, qword [r15]
mov rcx, qword [rsp + 0x40]
jne 0x14023cae1
lea rcx, [rax + rcx*4 + 8]
cmp dword [rcx], 0
jne 0x14023cad7
inc qword [rsp + 0x40]
jmp 0x14023caaa
call fcn.1401f7bc0
mov r9d, eax
jmp 0x14023caf4
lea rcx, [rax + rcx*8 + 8]
cmp qword [rcx], 0
je 0x14023cad0
call fcn.1401f7bd0
mov r9, rax
test r9, r9
je 0x14023cad0
xor edx, edx
mov rax, r9
mov r8d, ebx
div qword [rsp + 0x78]
mov rcx, qword [rbp + rdx*8]
xor edx, edx
call fcn.1401f9640
test eax, eax
je 0x14023cad0
jmp 0x14023cb1a
xor eax, eax
test r13, r13
jne 0x14023cb2f
mov rdx, qword [rbp]
mov rcx, qword [r15]
mov rdx, qword [rdx]
mov cl, byte [rcx + 1]
mov byte [rdx + 1], cl
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x40], eax
inc r13
call fcn.14026bb70
mov eax, dword [rsp + 0x40]
test eax, eax
je 0x14023ca16
mov edx, ebx
mov rcx, rbp
lea ebx, [rbx + rbx + 1]
call fcn.1401f8a40
mov r13d, dword [rsp + 0x6c]
jmp 0x14023c975
mov edx, ebx
mov rcx, rbp
xor ebx, ebx
xor ebp, ebp
call fcn.1401f8a40
jmp 0x14023cbdd
mov rax, qword [rsp + 0x30]
xor edx, edx
mov r9, qword [rsp + 0x30]
mov r8d, ebx
xor r13d, r13d
div qword [rsp + 0x78]
mov rcx, qword [rbp + rdx*8]
mov edx, 1
call fcn.1401f9640
cmp ebx, r13d
jle 0x14023cbc9
mov ecx, dword [r12]
mov rax, qword [rbp + r13*8]
lea edx, [rcx + 0x10000]
mov r9d, dword [rax + 8]
mov r8, qword [rax]
mov rcx, rdi
shl rdx, 0x25
add rdx, r13
inc r13
call fcn.1401f47b0
jmp 0x14023cb9a
mov dword [r12 + 0x20], ebx
mov rdx, qword [rdi + 0x90]
mov rcx, rdi
call fcn.140200d50
mov rcx, r14
call fcn.14026bb70
mov edx, ebx
mov rcx, rbp
call fcn.1401f8a40
jmp 0x14023c8ad
dec dword [rsp + 0x68]
sub qword [rsp + 0x88], 0x38
jmp 0x14023c7dc
dec qword [rsp + 0x60]
jmp 0x14023c796
mov rcx, qword [rsp + 0x38]
call fcn.140200d00
xor ecx, ecx
mov r14d, dword [rdi + 0x3c]
mov dword [rdi + 0x3c], ecx
jmp 0x14023cda6
xor edx, edx
mov qword [rsp + 0xa8], rdx
test rdi, rdi
jne 0x14023cc85
xor r9d, r9d
lea r8, [rsp + 0xa8]
mov edx, 2
mov rcx, rsi
call fcn.1401ffbb0
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call fcn.140268a60
mov rcx, rbx
call fcn.14026e550
cmp eax, 0x64
jne 0x14023cd82
mov qword [rsp + 0xb0], rsi
xor r15d, r15d
lea r12, [0x1401ffe60]
lea r13, [rsp + 0xb0]
mov dword [rsp + 0xb8], 0xffffffff
mov rbx, qword [rsp + 0xa8]
lea edx, [r15 + 1]
cmp edx, dword [rbp + 0x18]
jg 0x14023cd57
mov rax, qword [rbp + 0x28]
cmp byte [rax + r15], 0
jne 0x14023ccf1
test rbx, rbx
je 0x14023ccec
mov rcx, rbx
mov dword [rsp + 0x48], edx
call fcn.140269960
mov edx, dword [rsp + 0x48]
mov rcx, rbx
mov r14, rax
call fcn.140269780
jmp 0x14023cd0b
test rdi, rdi
jne 0x14023ccf6
inc r15
jmp 0x14023ccaa
mov rcx, qword [rdi + r15*8]
call fcn.140271860
mov rcx, qword [rdi + r15*8]
mov r14, rax
call fcn.1402716b0
mov qword [rsp + 0x28], r12
mov r9d, eax
mov r8, r14
xor eax, eax
mov qword [rsp + 0x20], r13
mov edx, 4
mov rcx, rbp
mov dword [rsp + 0xbc], eax
call fcn.14023d360
movsxd rcx, dword [rsp + 0xbc]
mov r14d, eax
mov rax, qword [rsi + 0x20]
lea rdx, [rax + r15*8]
sub qword [rdx], rcx
js 0x14023cd8f
inc r15
test r14d, r14d
je 0x14023ccaa
jmp 0x14023cd5a
xor r14d, r14d
mov rax, qword [rsi + 0x18]
test r14d, r14d
jne 0x14023cd95
test rax, rax
jg 0x14023cd7b
mov rcx, rbx
mov r14d, 0x10b
call fcn.14026d600
jmp 0x14023ce83
dec rax
mov qword [rsi + 0x18], rax
mov rcx, rbx
call fcn.14026d600
mov r14d, eax
jmp 0x14023cda6
mov r14d, 0x10b
dec qword [rsi + 0x18]
mov rcx, rbx
call fcn.14026d600
jmp 0x14023ce83
test r14d, r14d
jne 0x14023ce83
mov rax, qword [rsp + 0x50]
mov r14d, dword [rax + 0x58]
test r14d, r14d
jne 0x14023ce27
cmp dword [rax + 0x40], 0
jne 0x14023ce83
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov edx, 5
mov rcx, rsi
call fcn.1401ffbb0
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rbx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call fcn.140268a60
mov rcx, rbx
call fcn.14026e550
mov rcx, rbx
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14026d600
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov edx, 7
mov rcx, rsi
call fcn.1401ffbb0
mov r14d, eax
test eax, eax
jne 0x14023ce83
mov rbx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call fcn.140268a60
mov rcx, rbx
call fcn.14026e550
mov rcx, rbx
call fcn.14026d600
mov r14d, eax
mov rax, qword [rsp + 0x50]
mov edi, r14d
or edi, dword [rax + 0x40]
jmp 0x14023cdc1
mov eax, r14d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret