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

Disassembly:
mov r11, rsp
sub rsp, 0x68
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
mov rdi, rcx
mov rcx, qword [rcx + 0xd8]
mov rax, qword [rdi + 0xe8]
movsxd rbx, dword [rdi + 0x30]
mov qword [rsp + 0x38], rcx
test rax, rax
cmove rax, rcx
xor esi, esi
cmp byte [rdi + 0x12], 4
mov qword [rsp + 0x28], rax
jb 0x180187b39
mov rcx, qword [rdi + 0x88]
cmp qword [rcx], rsi
je 0x180187b39
lea rdx, [r11 - 0x38]
call fcn.180180120
movsxd r9, dword [rdi + 0x44]
mov esi, eax
imul r9, rbx
test eax, eax
jne 0x180187b44
mov rax, qword [rsp + 0x30]
cmp rax, r9
je 0x180187b35
cmp rax, r9
jle 0x180187b16
mov rcx, qword [rdi + 0x88]
mov rdx, r9
call fcn.180180100
mov esi, eax
jmp 0x180187b35
mov rcx, qword [rdi + 0x88]
lea rdx, [0x1801f3e58]
add r9, 0xffffffffffffffff
mov r8d, 1
call fcn.1801800f0
mov esi, eax
test esi, esi
jne 0x180187b44
mov rcx, rdi
mov dword [rdi + 0x28], ebx
call fcn.180186b90
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], r15
mov r15d, dword [rdi + 0x3c]
xor r13d, r13d
test r15d, r15d
jle 0x180187cda
nop
mov eax, dword [rdi + 0x44]
mov r12, qword [rdi + 0x98]
mov r14, qword [rdi + 0x128]
add eax, 4
lea rdx, [rsp + 0x20]
mov r8d, 4
mov rcx, r12
imul eax, r13d
movsxd rbx, eax
mov r9, rbx
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x180187cc5
lea rcx, [rsp + 0x20]
call fcn.180166e40
mov r8d, dword [rdi + 0x44]
lea r9, [rbx + 4]
mov rdx, r14
mov rcx, r12
mov ebp, eax
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x180187cc5
movsxd r8, dword [rdi + 0x44]
lea eax, [r8 + 4]
movsxd rcx, eax
add qword [rdi + 0xd8], rcx
test ebp, ebp
je 0x180187da2
mov eax, 0x40000000
cdq
idiv r8d
add eax, 1
cmp ebp, eax
je 0x180187da2
cmp ebp, dword [rdi + 0x28]
ja 0x180187ccd
mov rbx, qword [rdi + 0x120]
test rbx, rbx
je 0x180187c3e
mov ecx, dword [rdi + 0x118]
add ecx, 0xffffffff
and rcx, rbp
mov rbx, qword [rbx + rcx*8]
test rbx, rbx
je 0x180187c3e
nop
cmp dword [rbx + 8], ebp
je 0x180187c3e
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x180187c30
cmp byte [rdi + 0x12], 4
jb 0x180187c7b
test rbx, rbx
je 0x180187c4f
cmp byte [rbx + 0x3a], 0
jne 0x180187c7b
mov rcx, qword [rdi + 0x88]
cmp qword [rcx], 0
je 0x180187c7b
lea r9d, [rbp - 1]
mov rdx, r14
imul r9, r8
call fcn.1801800f0
test rbx, rbx
mov esi, eax
je 0x180187cc5
mov rcx, rbx
call fcn.180186070
test rbx, rbx
je 0x180187cc5
mov r12, qword [rbx + 0x50]
movsxd r8, dword [rdi + 0x44]
mov rdx, r14
mov rcx, r12
call fcn.1800b54c0
mov r11, qword [rdi + 0x110]
test r11, r11
je 0x180187ca8
mov edx, dword [rdi + 0x44]
mov rcx, rbx
call r11
cmp ebp, 1
jne 0x180187cc5
mov rax, qword [r12 + 0x18]
mov qword [rdi + 0x130], rax
mov rax, qword [r12 + 0x20]
mov qword [rdi + 0x138], rax
test esi, esi
jne 0x18018822e
add r13d, 1
cmp r13d, r15d
jl 0x180187b70
mov rcx, qword [rdi + 0xf8]
mov r15, qword [rsp + 0x28]
mov eax, dword [rdi + 0xf0]
cmp rcx, r15
mov qword [rdi + 0xd8], rcx
mov dword [rdi + 0x38], eax
jge 0x180187f79
mov r14d, dword [rsp + 0x28]
nop
nop
nop
mov rbx, qword [rdi + 0xd8]
mov rbp, qword [rdi + 0x90]
mov r13, qword [rdi + 0x128]
lea rdx, [rsp + 0x20]
mov r9, rbx
mov rcx, rbp
mov r8d, 4
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x180187f64
lea rcx, [rsp + 0x20]
call fcn.180166e40
mov r8d, dword [rdi + 0x44]
lea r9, [rbx + 4]
mov rdx, r13
mov rcx, rbp
mov r12d, eax
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x180187f64
movsxd r8, dword [rdi + 0x44]
lea eax, [r8 + 4]
movsxd rcx, eax
add qword [rdi + 0xd8], rcx
test r12d, r12d
je 0x180187da2
mov eax, 0x40000000
cdq
idiv r8d
add eax, 1
cmp r12d, eax
je 0x180187da2
cmp r12d, dword [rdi + 0x28]
jbe 0x180187dac
jmp 0x180187f6c
mov esi, 0x65
jmp 0x18018822e
lea r9, [r8 + rbx + 4]
lea rdx, [rsp + 0x24]
mov rcx, rbp
mov r8d, 4
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x180187dd7
lea rcx, [rsp + 0x24]
call fcn.180166e40
mov r14d, eax
test esi, esi
jne 0x180187f64
movsxd rbp, dword [rdi + 0x44]
add qword [rdi + 0xd8], 4
mov r11d, dword [rdi + 0x38]
lea eax, [rbp - 0xc8]
xor r9d, r9d
xor r10d, r10d
movsxd r8, eax
movabs rax, 0xa3d70a3d70a3d70b
lea rcx, [r8 + 0xc7]
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
jl 0x180187e55
nop
nop
movzx eax, byte [r13 + r8]
sub r8, 0x190
add r9d, eax
movzx eax, byte [r13 + r8 + 0xc8]
add r10d, eax
cmp r8, 0xc8
jg 0x180187e30
test r8, r8
jle 0x180187e62
movzx eax, byte [r8 + r13]
add r11d, eax
lea eax, [r11 + r9]
add eax, r10d
cmp eax, r14d
jne 0x180187da2
mov rbx, qword [rdi + 0x120]
test rbx, rbx
je 0x180187ea2
mov ecx, dword [rdi + 0x118]
add ecx, 0xffffffff
and rcx, r12
mov rbx, qword [rbx + rcx*8]
test rbx, rbx
je 0x180187ea2
cmp dword [rbx + 8], r12d
je 0x180187ea2
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x180187e93
cmp byte [rdi + 0x12], 4
jb 0x180187f1b
test rbx, rbx
je 0x180187eb3
cmp byte [rbx + 0x3a], 0
jne 0x180187f1b
mov rcx, qword [rdi + 0x88]
cmp qword [rcx], 0
je 0x180187f1b
lea r9d, [r12 - 1]
mov r8d, ebp
mov rdx, r13
imul r9, rbp
call fcn.1801800f0
test rbx, rbx
mov esi, eax
je 0x180187f64
cmp byte [rbx + 0x39], 0
je 0x180187f1b
mov rcx, qword [rbx + 0x40]
mov byte [rbx + 0x39], 0
test rcx, rcx
je 0x180187efa
mov rax, qword [rbx + 0x48]
mov qword [rcx + 0x48], rax
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x180187f0d
mov rax, qword [rbx + 0x40]
mov qword [rcx + 0x40], rax
jmp 0x180187f1b
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x40]
mov qword [rcx + 0xd0], rax
test rbx, rbx
je 0x180187f64
mov rbp, qword [rbx + 0x50]
movsxd r8, dword [rdi + 0x44]
mov rdx, r13
mov rcx, rbp
call fcn.1800b54c0
mov r11, qword [rdi + 0x110]
test r11, r11
je 0x180187f48
mov edx, dword [rdi + 0x44]
mov rcx, rbx
call r11
cmp r12d, 1
jne 0x180187f64
mov rax, qword [rbp + 0x18]
mov qword [rdi + 0x130], rax
mov rax, qword [rbp + 0x20]
mov qword [rdi + 0x138], rax
test esi, esi
jne 0x18018822e
cmp qword [rdi + 0xd8], r15
jl 0x180187d10
mov rbp, qword [rsp + 0x38]
cmp qword [rdi + 0xd8], rbp
jge 0x18018821c
mov r15d, dword [rsp + 0x28]
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x20]
mov rdx, rbp
mov rcx, rdi
call fcn.180186450
test eax, eax
mov esi, eax
jne 0x18018822e
mov eax, dword [rsp + 0x20]
test eax, eax
jne 0x180187fd3
mov eax, dword [rdi + 0x44]
add eax, 8
movsxd rcx, eax
mov rax, rbp
sub rax, qword [rdi + 0xd8]
cqo
idiv rcx
mov dword [rsp + 0x20], eax
lea r14d, [rax - 1]
test r14d, r14d
js 0x18018820f
mov rbx, qword [rdi + 0xd8]
cmp rbx, rbp
jge 0x18018820f
mov r12, qword [rdi + 0x90]
mov r13, qword [rdi + 0x128]
lea rdx, [rsp + 0x24]
mov rcx, r12
mov r9, rbx
mov r8d, 4
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x1801881fc
lea rcx, [rsp + 0x24]
call fcn.180166e40
mov r8d, dword [rdi + 0x44]
lea r9, [rbx + 4]
mov rdx, r13
mov rcx, r12
mov ebp, eax
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x1801881fc
movsxd r8, dword [rdi + 0x44]
lea eax, [r8 + 4]
movsxd rcx, eax
add qword [rdi + 0xd8], rcx
test ebp, ebp
je 0x180187da2
mov eax, 0x40000000
cdq
idiv r8d
add eax, 1
cmp ebp, eax
je 0x180187da2
cmp ebp, dword [rdi + 0x28]
ja 0x180188200
lea r9, [r8 + rbx + 4]
lea rdx, [rsp + 0x28]
mov rcx, r12
mov r8d, 4
call fcn.1801800e0
test eax, eax
mov esi, eax
jne 0x1801880a9
lea rcx, [rsp + 0x28]
call fcn.180166e40
mov r15d, eax
test esi, esi
jne 0x1801881fc
movsxd r12, dword [rdi + 0x44]
add qword [rdi + 0xd8], 4
mov r11d, dword [rdi + 0x38]
lea eax, [r12 - 0xc8]
xor r9d, r9d
xor r10d, r10d
movsxd r8, eax
movabs rax, 0xa3d70a3d70a3d70b
lea rcx, [r8 + 0xc7]
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
jl 0x180188125
nop
movzx eax, byte [r13 + r8]
sub r8, 0x190
add r9d, eax
movzx eax, byte [r13 + r8 + 0xc8]
add r10d, eax
cmp r8, 0xc8
jg 0x180188100
test r8, r8
jle 0x180188133
movzx eax, byte [r13 + r8]
add r11d, eax
lea eax, [r10 + r9]
add eax, r11d
cmp eax, r15d
jne 0x180187da2
mov rbx, qword [rdi + 0x120]
test rbx, rbx
je 0x180188172
mov ecx, dword [rdi + 0x118]
add ecx, 0xffffffff
and rcx, rbp
mov rbx, qword [rbx + rcx*8]
test rbx, rbx
je 0x180188172
cmp dword [rbx + 8], ebp
je 0x180188172
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x180188164
cmp byte [rdi + 0x12], 4
jb 0x1801881b2
test rbx, rbx
je 0x180188183
cmp byte [rbx + 0x3a], 0
jne 0x1801881b2
mov rcx, qword [rdi + 0x88]
cmp qword [rcx], 0
je 0x1801881b2
lea r9d, [rbp - 1]
mov r8d, r12d
mov rdx, r13
imul r9, r12
call fcn.1801800f0
test rbx, rbx
mov esi, eax
je 0x1801881fc
mov rcx, rbx
call fcn.180186070
test rbx, rbx
je 0x1801881fc
mov r12, qword [rbx + 0x50]
movsxd r8, dword [rdi + 0x44]
mov rdx, r13
mov rcx, r12
call fcn.1800b54c0
mov r11, qword [rdi + 0x110]
test r11, r11
je 0x1801881df
mov edx, dword [rdi + 0x44]
mov rcx, rbx
call r11
cmp ebp, 1
jne 0x1801881fc
mov rax, qword [r12 + 0x18]
mov qword [rdi + 0x130], rax
mov rax, qword [r12 + 0x20]
mov qword [rdi + 0x138], rax
test esi, esi
jne 0x18018822e
sub r14d, 1
mov rbp, qword [rsp + 0x38]
jns 0x180187fe0
cmp qword [rdi + 0xd8], rbp
jl 0x180187f90
test esi, esi
mov qword [rdi + 0xd8], rbp
jne 0x18018822e
mov qword [rdi + 0xd8], rbp
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov eax, esi
mov rsi, qword [rsp + 0x80]
add rsp, 0x68
ret