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

Disassembly:
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rax, qword [rcx + 0x20]
mov rsi, rcx
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x180035a12
call qword [0x18011a1b8]
mov rcx, qword [rsi + 0x28]
mov r14d, 1
cmp byte [rcx + 0x11], 0
je 0x180035a31
add dword [rcx + 0x14], r14d
cmp byte [rcx + 0x12], 0
jne 0x180035a31
call fcn.18002be90
mov rdx, qword [rsi]
test rdx, rdx
je 0x180035a4b
mov rcx, qword [rdx + 0x18]
test rcx, rcx
je 0x180035a4b
call qword [0x18011a1b8]
mov rdx, qword [rsi]
mov edi, dword [rsi + 0x30]
test edi, edi
je 0x180035a5e
lea eax, [rdi - 5]
cmp eax, r14d
ja 0x180035ec7
mov rcx, qword [rsi + 0x28]
mov r9, qword [rsi + 8]
and dword [rsp + 0x80], 0
mov r8, qword [rcx + 8]
mov rax, qword [r8]
mov qword [rsp + 0x98], rax
mov rax, qword [r9 + 8]
mov rax, qword [rax]
mov qword [rsp + 0x90], rax
test rdx, rdx
je 0x180035a9f
cmp byte [r8 + 0x24], 2
jne 0x180035a9f
mov edi, 5
jmp 0x180035ae6
xor edi, edi
cmp dword [rsi + 0x14], edi
jne 0x180035acf
lea edx, [rdi + 2]
mov rcx, r9
call fcn.18002e120
mov edi, eax
test eax, eax
jne 0x180035ae6
mov rcx, qword [rsi + 8]
lea r8, [rsi + 0x10]
mov edx, r14d
mov dword [rsi + 0x14], r14d
call fcn.180034658
mov rcx, qword [rsi + 0x28]
cmp byte [rcx + 0x10], 0
jne 0x180035ae6
xor edx, edx
call fcn.18002e120
mov edi, eax
mov dword [rsp + 0x80], r14d
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rsi + 8]
movsxd r13, dword [rcx + 0x30]
mov rax, qword [rax + 8]
mov ebx, dword [rax + 0x30]
mov rax, qword [rax]
mov dword [rsp + 0x88], ebx
mov r12b, byte [rax + 9]
test edi, edi
jne 0x180035b1e
cmp r12b, 5
jne 0x180035b1e
cmp r13d, ebx
lea eax, [rdi + 8]
cmovne edi, eax
mov ebp, dword [rcx + 0x3c]
xor r15d, r15d
mov eax, 0x65
cmp r15d, 0x7fffffff
jge 0x180035bb8
mov r14d, dword [rsi + 0x18]
cmp r14d, ebp
ja 0x180035bb2
test edi, edi
jne 0x180035bf8
mov rax, qword [rsi + 0x28]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, 0x40000000
div dword [rcx + 0x30]
inc eax
cmp r14d, eax
je 0x180035ba0
mov rcx, qword [rsp + 0x98]
lea r9d, [rdi + 2]
lea r8, [rsp + 0x20]
mov edx, r14d
call fcn.1800287cc
mov edi, eax
test eax, eax
jne 0x180035ba0
mov rbx, qword [rsp + 0x20]
xor r9d, r9d
mov edx, r14d
mov rcx, rsi
mov r8, qword [rbx + 8]
call fcn.180035880
mov rcx, rbx
mov edi, eax
call fcn.180028b98
mov r14d, 1
add dword [rsi + 0x18], r14d
add r15d, r14d
jmp 0x180035b24
mov r14d, 1
test edi, edi
jne 0x180035bf8
mov eax, ebp
mov dword [rsi + 0x38], ebp
sub eax, dword [rsi + 0x18]
add eax, r14d
mov dword [rsi + 0x34], eax
cmp dword [rsi + 0x18], ebp
ja 0x180035c06
cmp dword [rsi + 0x3c], edi
jne 0x180035e93
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x70]
mov qword [rsi + 0x40], rax
mov qword [rdx + 0x70], rsi
mov dword [rsi + 0x3c], r14d
jmp 0x180035e93
cmp edi, eax
jne 0x180035e93
mov r14d, 1
test ebp, ebp
jne 0x180035c5d
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x11], bpl
je 0x180035c26
add dword [rbx + 0x14], r14d
cmp byte [rbx + 0x12], bpl
jne 0x180035c26
mov rcx, rbx
call fcn.18002be90
mov rax, qword [rbx + 8]
and dword [rax + 0x3c], 0
mov rcx, qword [rbx + 8]
call fcn.18002e01c
cmp byte [rbx + 0x11], 0
mov edi, eax
je 0x180035c4d
sub dword [rbx + 0x14], 1
jne 0x180035c4d
mov rcx, rbx
call fcn.18002be48
mov ebp, r14d
test edi, edi
je 0x180035c5d
cmp edi, 0x65
jne 0x180035e93
mov r8d, dword [rsi + 0x10]
mov edx, r14d
mov rcx, qword [rsi + 8]
add r8d, r14d
call fcn.180034700
mov edi, eax
test eax, eax
jne 0x180035e93
mov rcx, qword [rsi]
test rcx, rcx
je 0x180035c87
call fcn.18004d9f0
cmp r12b, 5
jne 0x180035ca5
mov rcx, qword [rsi + 8]
mov edx, 2
call fcn.1800357bc
mov edi, eax
test eax, eax
jne 0x180035e93
mov ebx, dword [rsp + 0x88]
cmp r13d, ebx
jge 0x180035e58
mov eax, ebx
movsxd r12, ebp
cdq
idiv r13d
imul r12, r13
mov ecx, eax
dec eax
add eax, ebp
cdq
idiv ecx
mov rcx, qword [rsp + 0x90]
xor edx, edx
mov r8d, eax
mov rax, qword [rsi + 8]
mov r14, qword [rcx + 0x48]
mov r15d, dword [rcx + 0x1c]
lea ebp, [r8 - 1]
mov qword [rsp + 0x28], r14
mov r14, rcx
mov rcx, qword [rax + 8]
mov eax, 0x40000000
div dword [rcx + 0x30]
inc eax
cmp r8d, eax
cmovne ebp, r8d
cmp ebp, r15d
ja 0x180035d70
mov rax, qword [rsi + 8]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, 0x40000000
div dword [rcx + 0x30]
inc eax
cmp ebp, eax
je 0x180035d6a
xor r9d, r9d
lea r8, [rsp + 0x20]
mov edx, ebp
mov rcx, r14
call fcn.1800287cc
mov edi, eax
test eax, eax
jne 0x180035d6a
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rbx + 0x20]
mov eax, dword [rcx + 0xbc]
cmp dword [rcx + 0xb8], eax
mov rcx, rbx
jbe 0x180035d5b
call fcn.180028ed8
jmp 0x180035d60
call fcn.180028bfc
mov rcx, rbx
mov edi, eax
call fcn.180028b98
inc ebp
test edi, edi
je 0x180035d05
mov r14, qword [rsp + 0x28]
test edi, edi
jne 0x180035d8e
mov rcx, qword [rsp + 0x90]
xor edx, edx
lea r8d, [rdx + 1]
call fcn.1800290bc
mov edi, eax
mov eax, dword [rsp + 0x88]
mov r15, r12
add eax, 0x40000000
movsxd rcx, eax
lea eax, [r13 + 0x40000000]
cmp rcx, r12
movsxd rbx, eax
cmovl r15, rcx
jmp 0x180035e0e
cmp rbx, r15
jge 0x180035e14
mov rcx, qword [rsp + 0x98]
lea r8, [rsp + 0x20]
and qword [rsp + 0x20], 0
mov rax, rbx
cqo
xor r9d, r9d
idiv r13
lea edx, [rax + 1]
call fcn.1800287cc
mov rbp, qword [rsp + 0x20]
mov edi, eax
test eax, eax
jne 0x180035dfe
mov rax, qword [r14]
mov r9, rbx
mov rdx, qword [rbp + 8]
mov r8d, r13d
mov rcx, r14
call qword [rax + 0x18]
mov edi, eax
test rbp, rbp
je 0x180035e0b
mov rcx, rbp
call fcn.180028b98
add rbx, r13
test edi, edi
je 0x180035db3
jmp 0x180035e93
mov rax, qword [r14]
lea rdx, [rsp + 0x98]
mov rcx, r14
call qword [rax + 0x30]
mov edi, eax
test eax, eax
jne 0x180035e43
cmp qword [rsp + 0x98], r12
jle 0x180035e43
mov rax, qword [r14]
mov rdx, r12
mov rcx, r14
call qword [rax + 0x20]
mov edi, eax
test edi, edi
jne 0x180035e93
mov rcx, qword [rsp + 0x90]
xor edx, edx
call fcn.180029074
jmp 0x180035e76
mov rcx, qword [rsp + 0x90]
mov eax, r13d
cdq
xor r8d, r8d
idiv ebx
xor edx, edx
imul eax, ebp
mov dword [rcx + 0x1c], eax
call fcn.1800290bc
mov edi, eax
test eax, eax
jne 0x180035e93
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.18002f1ec
mov edi, eax
test eax, eax
mov eax, 0x65
cmove edi, eax
cmp dword [rsp + 0x80], 0
je 0x180035eb3
mov rcx, qword [rsi + 0x28]
xor edx, edx
call fcn.18002eee8
mov rcx, qword [rsi + 0x28]
xor edx, edx
call fcn.18002f1ec
mov rdx, qword [rsi]
cmp edi, 0xc0a
mov eax, 7
cmove edi, eax
mov dword [rsi + 0x30], edi
test rdx, rdx
je 0x180035edb
mov rcx, qword [rdx + 0x18]
test rcx, rcx
je 0x180035edb
call qword [0x18011a1c8]
mov rcx, qword [rsi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x180035ef0
sub dword [rcx + 0x14], 1
jne 0x180035ef0
call fcn.18002be48
mov rcx, qword [rsi + 0x20]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x180035f03
call qword [0x18011a1c8]
mov eax, edi
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret