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

Disassembly:
push rbp
sub rsp, 0xb0
mov rax, qword [0x180295a70]
xor rax, rsp
mov qword [rsp + 0x70], rax
test r8d, r8d
mov r10, qword [rsp + 0xe0]
mov rax, qword [rcx + 0x28]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x38], rcx
mov qword [r10], rax
jne 0x18012c33d
xor eax, eax
jmp 0x18012c967
mov eax, dword [r9 + 8]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xa8], rsi
cmp dword [rcx + 0x4c], eax
mov eax, dword [r9 + 0xc]
mov rbp, rcx
mov rsi, qword [rbp + 0x20]
lea rcx, [rcx + 0x4c]
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x98], r12
mov r12d, dword [r9 + 4]
lea rdx, [r9 + 8]
cmovl rdx, rcx
cmp dword [rbp + 0x50], eax
mov qword [rsp + 0x90], r13
mov r13d, dword [r9]
lea rcx, [rbp + 0x50]
mov qword [rsp + 0x88], r14
mov r14d, dword [rdx]
lea rdx, [r9 + 0xc]
mov qword [rsp + 0x80], r15
cmovl rdx, rcx
mov rcx, qword [rbp + 0x38]
mov r15d, dword [rdx]
lea rdx, [rsp + 0x28]
call fcn.180090750
xor edi, edi
nop
mov rcx, qword [rbp + 0x38]
lea rdx, [rsp + 0x50]
call fcn.180090720
mov rbx, rax
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x18012c3e0
cmp rax, qword [rbx]
je 0x18012c3e5
call fcn.1801600e0
mov rax, qword [rbx + 8]
cmp qword [rsp + 0x30], rax
je 0x18012c50d
mov rbx, qword [rbp + 0x40]
mov qword [rdi + rbx], rsi
mov qword [rdi + rbx + 8], rsi
mov rax, qword [rsp + 0x28]
test rax, rax
jne 0x18012c415
call fcn.1801600e0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
cmp rcx, qword [rax + 8]
jne 0x18012c42a
call fcn.1801600e0
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x3c]
mov r8d, r14d
mov edx, r13d
call fcn.1800da200
mov dword [rdi + rbx + 0x10], eax
mov rcx, qword [rsp + 0x28]
test rcx, rcx
jne 0x18012c450
call fcn.1801600e0
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
cmp rax, qword [rcx + 8]
jne 0x18012c465
call fcn.1801600e0
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0x40]
mov r8d, r15d
mov edx, r12d
call fcn.1800da200
mov ecx, dword [rdi + rbx + 0x24]
mov dword [rdi + rbx + 0x14], eax
imul ecx, eax
imul ecx, dword [rdi + rbx + 0x10]
cmp qword [rsp + 0x28], 0
movsxd rax, ecx
lea rsi, [rsi + rax*2]
jne 0x18012c497
call fcn.1801600e0
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x49], 0
je 0x18012c4b0
call fcn.1801600e0
add rdi, 0x28
jmp 0x18012c3c0
mov rdx, qword [rcx + 0x10]
cmp byte [rdx + 0x49], 0
jne 0x18012c4dd
mov rax, qword [rdx]
cmp byte [rax + 0x49], 0
jne 0x18012c4cf
mov rdx, rax
mov rax, qword [rax]
cmp byte [rax + 0x49], 0
je 0x18012c4c3
mov qword [rsp + 0x30], rdx
add rdi, 0x28
jmp 0x18012c3c0
mov rax, qword [rcx + 8]
cmp byte [rax + 0x49], 0
jne 0x18012c4ff
cmp rcx, qword [rax + 0x10]
jne 0x18012c4ff
mov qword [rsp + 0x30], rax
mov rcx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x49], 0
je 0x18012c4e7
mov qword [rsp + 0x30], rax
add rdi, 0x28
jmp 0x18012c3c0
cmp dword [rbp + 0x18], 1
mov r10, rbp
mov rbp, qword [rsp + 0x48]
jne 0x18012c636
cmp r12d, r15d
jg 0x18012c6f6
nop
nop
xor r13d, r13d
cmp dword [r10 + 0x30], r13d
jle 0x18012c624
xor edi, edi
nop
test r12d, r12d
mov rsi, qword [r10 + 0x40]
mov r8d, dword [rdi + rsi + 0x18]
js 0x18012c569
test r8d, r8d
js 0x18012c55e
mov eax, r12d
cdq
idiv r8d
mov ecx, eax
jmp 0x18012c592
mov eax, r12d
cdq
idiv r8d
mov ecx, eax
jmp 0x18012c592
test r8d, r8d
js 0x18012c581
mov eax, r8d
sub eax, r12d
sub eax, 1
cdq
idiv r8d
mov ecx, eax
neg ecx
jmp 0x18012c592
or eax, 0xffffffff
sub eax, r8d
sub eax, r12d
cdq
idiv r8d
mov ecx, eax
neg ecx
imul ecx, r8d
cmp r12d, ecx
jne 0x18012c612
cmp dword [rdi + rsi + 0x1c], 1
jne 0x18012c5e6
mov r9d, dword [rdi + rsi + 0x10]
test r9d, r9d
jle 0x18012c612
nop
movzx eax, word [rbp]
mov r8, qword [rdi + rsi + 8]
sub r9d, 1
mov word [rsp + 0x20], ax
movzx edx, byte [rsp + 0x21]
movzx ecx, al
shl dx, 8
add rbp, 2
or dx, cx
mov word [r8], dx
add qword [rdi + rsi + 8], 2
test r9d, r9d
jg 0x18012c5b0
jmp 0x18012c612
mov eax, dword [rdi + rsi + 0x24]
mov rcx, qword [rdi + rsi + 8]
mov rdx, rbp
imul eax, dword [rdi + rsi + 0x10]
movsxd rbx, eax
add rbx, rbx
mov r8, rbx
call fcn.180161690
mov r10, qword [rsp + 0x38]
add rbp, rbx
add qword [rdi + rsi + 8], rbx
add r13d, 1
add rdi, 0x28
cmp r13d, dword [r10 + 0x30]
jl 0x18012c540
add r12d, 1
cmp r12d, r15d
jle 0x18012c530
jmp 0x18012c6f6
cmp r12d, r15d
jg 0x18012c6f6
nop
xor r13d, r13d
cmp dword [r10 + 0x30], r13d
jle 0x18012c6e9
xor edi, edi
nop
test r12d, r12d
mov rsi, qword [r10 + 0x40]
mov r8d, dword [rdi + rsi + 0x18]
js 0x18012c679
test r8d, r8d
js 0x18012c66e
mov eax, r12d
cdq
idiv r8d
mov ecx, eax
jmp 0x18012c6a2
mov eax, r12d
cdq
idiv r8d
mov ecx, eax
jmp 0x18012c6a2
test r8d, r8d
js 0x18012c691
mov eax, r8d
sub eax, r12d
sub eax, 1
cdq
idiv r8d
mov ecx, eax
neg ecx
jmp 0x18012c6a2
or eax, 0xffffffff
sub eax, r8d
sub eax, r12d
cdq
idiv r8d
mov ecx, eax
neg ecx
imul ecx, r8d
cmp r12d, ecx
jne 0x18012c6d7
mov eax, dword [rdi + rsi + 0x24]
mov rcx, qword [rdi + rsi + 8]
mov rdx, rbp
imul eax, dword [rdi + rsi + 0x10]
movsxd rbx, eax
add rbx, rbx
mov r8, rbx
call fcn.180161690
mov r10, qword [rsp + 0x38]
add rbp, rbx
add qword [rdi + rsi + 8], rbx
add r13d, 1
add rdi, 0x28
cmp r13d, dword [r10 + 0x30]
jl 0x18012c650
add r12d, 1
cmp r12d, r15d
jle 0x18012c640
cmp dword [r10 + 0x30], 0
mov r15, qword [r10 + 0x28]
mov dword [rsp + 0x40], 0
jle 0x18012c928
xor r13d, r13d
mov r14, qword [r10 + 0x40]
cmp dword [r13 + r14 + 0x1c], 1
je 0x18012c74f
mov eax, dword [r13 + r14 + 0x24]
mov rdx, qword [r13 + r14]
mov rcx, r15
imul eax, dword [r13 + r14 + 0x14]
imul eax, dword [r13 + r14 + 0x10]
add eax, eax
movsxd rbx, eax
mov r8, rbx
call fcn.180161690
mov r10, qword [rsp + 0x38]
add r15, rbx
jmp 0x18012c90c
mov r8d, dword [r13 + r14 + 0x14]
test r8d, r8d
jle 0x18012c90c
mov r9d, dword [r13 + r14 + 0x10]
mov r11d, 1
mov dword [rsp + 0x44], r11d
nop
movsxd rdx, dword [r13 + r14 + 0x10]
lea eax, [r11 - 1]
imul eax, edx
movsxd rcx, eax
mov rax, qword [r13 + r14]
lea rsi, [rax + rcx*2]
lea eax, [r11 + 2]
cmp eax, r8d
lea rbx, [rsi + rdx*2]
lea rdi, [rbx + rdx*2]
lea rbp, [rdi + rdx*2]
jl 0x18012c7b2
cmp r11d, r8d
lea eax, [r11 + 1]
cmovge rbx, rsi
cmp eax, r8d
cmovge rdi, rbx
mov rbp, rdi
xor r12d, r12d
test r9d, r9d
jle 0x18012c8f1
nop
lea eax, [r12 + 3]
cmp eax, r9d
jl 0x18012c82d
xor r8d, r8d
sub r9d, r12d
add r9d, 0xffffffff
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x48], r9d
nop
cmp r9d, r8d
lea rcx, [rsp + 0x20]
lea rax, [rsp + 0x48]
cmovge rax, rcx
movsxd rcx, r8d
add r8d, 1
cmp r8d, 4
movsxd rdx, dword [rax]
mov dword [rsp + 0x20], r8d
movzx eax, word [rsi + rdx*2]
mov word [rsp + rcx*2 + 0x50], ax
movzx eax, word [rbx + rdx*2]
mov word [rsp + rcx*2 + 0x58], ax
movzx eax, word [rdi + rdx*2]
mov word [rsp + rcx*2 + 0x60], ax
movzx eax, word [rbp + rdx*2]
mov word [rsp + rcx*2 + 0x68], ax
jl 0x18012c7e0
jmp 0x18012c84e
mov rax, qword [rsi]
mov qword [rsp + 0x50], rax
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
mov rax, qword [rdi]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp]
mov qword [rsp + 0x68], rax
movzx edx, byte [r13 + r14 + 0x20]
add rsi, 8
add rbx, 8
add rdi, 8
add rbp, 8
test dl, dl
je 0x18012c8b7
xor ecx, ecx
lea r8, [0x1801ec8e0]
movzx eax, word [rsp + rcx*2 + 0x50]
add rcx, 4
cmp rcx, 0x10
movzx eax, word [r8 + rax*2]
mov word [rsp + rcx*2 + 0x48], ax
movzx eax, word [rsp + rcx*2 + 0x4a]
movzx eax, word [r8 + rax*2]
mov word [rsp + rcx*2 + 0x4a], ax
movzx eax, word [rsp + rcx*2 + 0x4c]
movzx eax, word [r8 + rax*2]
mov word [rsp + rcx*2 + 0x4c], ax
movzx eax, word [rsp + rcx*2 + 0x4e]
movzx eax, word [r8 + rax*2]
mov word [rsp + rcx*2 + 0x4e], ax
jl 0x18012c871
movzx r8d, byte [r10 + 0x14]
test dl, dl
lea rcx, [rsp + 0x50]
sete r9b
mov rdx, r15
call fcn.18012b7c0
mov r9d, dword [r13 + r14 + 0x10]
mov r10, qword [rsp + 0x38]
movsxd rcx, eax
add r12d, 4
add r15, rcx
cmp r12d, r9d
jl 0x18012c7c0
mov r11d, dword [rsp + 0x44]
mov r8d, dword [r13 + r14 + 0x14]
add r11d, 4
lea ecx, [r11 - 1]
mov dword [rsp + 0x44], r11d
cmp ecx, r8d
jl 0x18012c770
mov r8d, dword [rsp + 0x40]
add r13, 0x28
add r8d, 1
cmp r8d, dword [r10 + 0x30]
mov dword [rsp + 0x40], r8d
jl 0x18012c710
sub r15d, dword [r10 + 0x28]
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xd0]
mov eax, r15d
mov r15, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1801604e0
add rsp, 0xb0
pop rbp
ret