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

Disassembly:
push rbx
push r12
sub rsp, 0x38
cmp dword [rcx + 0x24], 0xca
mov rbx, rcx
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
je 0x1401637b3
mov rax, qword [rcx]
mov dword [rax + 0x28], 0x15
mov rcx, qword [rcx]
mov eax, dword [rbx + 0x24]
mov dword [rcx + 0x2c], eax
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax]
mov rcx, rbx
call fcn.140162270
mov edx, dword [rbx + 0x38]
xor r15d, r15d
mov rdi, qword [rbx + 0x120]
mov r14d, r15d
mov r8d, edx
lea ebp, [r15 + 4]
lea r12d, [r15 + 1]
test edx, edx
jle 0x1401638ce
mov qword [rsp + 0x58], rsi
lea r10, [rdi + 0x24]
mov qword [rsp + 0x30], r13
lea r13d, [r15 + 8]
cmp byte [rbx + 0x60], r15b
mov r11d, ebp
mov r9d, dword [rbx + 0x188]
mov r8d, r12d
cmovne r11d, r13d
cmp r9d, r11d
jg 0x140163834
mov edi, dword [r10 - 0x1c]
mov esi, dword [rbx + 0x180]
mov ecx, edi
mov eax, esi
imul ecx, r8d
cdq
add ecx, ecx
idiv ecx
test edx, edx
jne 0x140163834
add r8d, r8d
mov eax, r9d
imul eax, r8d
cmp eax, r11d
jle 0x140163814
imul r9d, r8d
mov r11d, ebp
mov r8d, r12d
mov dword [r10], r9d
cmp byte [rbx + 0x60], r15b
mov r9d, dword [rbx + 0x18c]
cmovne r11d, r13d
cmp r9d, r11d
jg 0x140163880
mov edi, dword [r10 - 0x18]
mov esi, dword [rbx + 0x184]
nop
mov ecx, edi
mov eax, esi
imul ecx, r8d
cdq
add ecx, ecx
idiv ecx
test edx, edx
jne 0x140163880
add r8d, r8d
mov eax, r9d
imul eax, r8d
cmp eax, r11d
jle 0x140163860
mov ecx, dword [r10]
imul r9d, r8d
mov dword [r10 + 4], r9d
lea eax, [r9 + r9]
cmp ecx, eax
jle 0x140163898
mov dword [r10], eax
jmp 0x1401638a7
add ecx, ecx
mov eax, r9d
cmp r9d, ecx
cmovg eax, ecx
mov dword [r10 + 4], eax
mov edx, dword [rbx + 0x38]
inc r14d
add r10, 0x60
mov r8d, edx
cmp r14d, edx
jl 0x1401637f0
mov rdi, qword [rbx + 0x120]
mov r13, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x28]
test edx, edx
jle 0x140163931
add rdi, 8
nop dword [rax + rax]
mov ecx, dword [rdi + 0x1c]
imul ecx, dword [rdi]
mov edx, dword [rbx + 0x20c]
imul edx, dword [rbx + 0x180]
imul ecx, dword [rbx + 0x30]
call fcn.1401621a0
mov ecx, dword [rdi + 0x20]
imul ecx, dword [rdi + 4]
mov dword [rdi + 0x24], eax
mov edx, dword [rbx + 0x20c]
imul edx, dword [rbx + 0x184]
imul ecx, dword [rbx + 0x34]
call fcn.1401621a0
mov dword [rdi + 0x28], eax
lea rdi, [rdi + 0x60]
mov edx, dword [rbx + 0x38]
inc r15d
mov r8d, edx
cmp r15d, edx
jl 0x1401638e0
mov r9d, dword [rbx + 0x40]
mov r15, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x60]
lea eax, [r9 - 1]
cmp eax, 6
ja case.default.0x14016395c
lea r10, [0x140000000]
cdqe
mov ecx, dword [r10 + rax*4 + 0x163a54]
add rcx, r10
jmp rcx
mov ebp, r12d
jmp case.0x14016395c.4
mov ebp, 3
jmp case.0x14016395c.4
mov ebp, edx
mov dword [rbx + 0x7c], ebp
cmp byte [rbx + 0x62], 0
cmovne ebp, r12d
cmp byte [rbx + 0x170], 0
mov dword [rbx + 0x80], ebp
mov rbp, qword [rsp + 0x50]
jne 0x140163a42
mov eax, dword [rbx + 0x3c]
sub eax, 3
test eax, 0xfffffffb
jne 0x140163a42
cmp r8d, 3
jne 0x140163a42
cmp r9d, 2
jne 0x140163a42
cmp dword [rbx + 0x7c], r8d
jne 0x140163a42
cmp dword [rbx + 0x16c], 0
jne 0x140163a42
mov rax, qword [rbx + 0x120]
cmp dword [rax + 8], r9d
jne 0x140163a42
cmp dword [rax + 0x68], r12d
jne 0x140163a42
cmp dword [rax + 0xc8], r12d
jne 0x140163a42
cmp dword [rax + 0xc], r9d
jg 0x140163a42
cmp dword [rax + 0x6c], r12d
jne 0x140163a42
cmp dword [rax + 0xcc], r12d
jne 0x140163a42
mov ecx, dword [rbx + 0x188]
cmp dword [rax + 0x24], ecx
jne 0x140163a42
cmp dword [rax + 0x84], ecx
jne 0x140163a42
cmp dword [rax + 0xe4], ecx
jne 0x140163a42
mov ecx, dword [rbx + 0x18c]
cmp dword [rax + 0x28], ecx
jne 0x140163a42
cmp dword [rax + 0x88], ecx
jne 0x140163a42
cmp dword [rax + 0xe8], ecx
jne 0x140163a42
mov eax, dword [rbx + 0x184]
mov dword [rbx + 0x84], eax
add rsp, 0x38
pop r12
pop rbx
ret
mov dword [rbx + 0x84], r12d
add rsp, 0x38
pop r12
pop rbx
ret