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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x110]
xor eax, eax
mov qword [rbp - 0xd8], rax
xorps xmm4, xmm4
movaps xmmword [rbp - 0xd0], xmm4
movaps xmmword [rbp - 0xc0], xmm4
movabs rax, 0xffffffffffffffa0
movaps xmmword [rbp + rax - 0x50], xmm4
movaps xmmword [rbp + rax - 0x40], xmm4
movaps xmmword [rbp + rax - 0x30], xmm4
add rax, 0x30
jne 0x180088f7f
mov qword [rbp - 0x50], rax
mov qword [rbp + 0x10], rcx
mov rsi, rcx
mov eax, dword [rsi + 0x10]
mov dword [rbp - 0x3c], eax
mov rdi, qword [rsi]
mov qword [rbp - 0xd8], rdi
cmp dword [rbp - 0x3c], 0
je 0x1800891b6
cmp dword [rbp - 0x3c], 1
jne 0x180088fe9
movups xmm0, xmmword [rsi + 0x48]
movups xmmword [rbp - 0x58], xmm0
xor eax, eax
mov qword [rsi + 0x48], rax
mov qword [rsi + 0x50], rax
mov dword [rbp - 0x3c], 0xffffffff
mov dword [rsi + 0x10], 0xffffffff
jmp 0x1800897ad
xor ecx, ecx
mov dword [rdi + 0x38], ecx
cmp dword [rdi + 0x40], 0
jne 0x180089078
cmp byte [rdi + 0x4a], 0
jne 0x18008906e
xor eax, eax
mov dword [rbp - 0x44], eax
mov dword [rbp - 0x48], eax
mov eax, dword [rsi + 0x3c]
cdq
idiv dword [rdi + 0x44]
mov ebx, eax
cmp ebx, 1
jle 0x180089677
mov rcx, qword [rdi + 0x18]
lea r10, [0x180228b60]
call qword [r10]
test eax, eax
je 0x180089677
imul ebx, dword [rdi + 0x3c]
jo 0x18008989a
mov dword [rsi + 0x14], ebx
lea rcx, [0x180226e00]
cmp qword [rcx - 8], 0
jne 0x18008988a
mov rbx, qword [0x1801fb8b8]
mov rcx, qword [rbx + 8]
mov edx, dword [rsi + 0x14]
cmp dword [rcx], ecx
call fcn.1800aae00
lea rcx, [rsi + 8]
mov rdx, rax
call fcn.1800decc0
jmp 0x1800891b6
xor edx, edx
mov dword [rbp - 0x40], edx
jmp 0x1800898a6
mov ebx, dword [rdi + 0x40]
mov edx, dword [rsi + 0x3c]
cmp ebx, edx
cmovg ebx, edx
test ebx, ebx
je 0x1800891ae
mov r14, qword [rdi + 0x28]
test r14, r14
je 0x180089894
cmp dword [r14 + 8], ebx
jb 0x180089894
add r14, 0x10
mov r15d, ebx
lea r13, [rsi + 0x30]
xor ecx, ecx
xor r12d, r12d
mov rax, qword [r13]
test rax, rax
je 0x180089111
mov rdx, qword [rax]
cmp dword [rdx], 0
jl 0x1800890e3
lea rdx, [rbp - 0x90]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x30]
mov r12d, dword [rbp - 0x88]
mov rcx, qword [rbp - 0x90]
jmp 0x1800890eb
lea rcx, [rax + 0x10]
mov r12d, dword [rax + 8]
mov r8d, dword [r13 + 8]
and r8d, 0x7fffffff
mov edx, dword [r13 + 0xc]
mov eax, edx
add rax, r8
mov r10d, r12d
cmp rax, r10
ja 0x180089894
add rcx, r8
mov r12d, edx
cmp r15d, r12d
ja 0x1800898a0
mov r8d, r15d
mov rdx, r14
call fcn.18001ffe0
sub dword [rdi + 0x40], ebx
mov rcx, qword [rdi + 0x28]
mov r8, rcx
test r8, r8
je 0x180089894
mov edx, dword [r8 + 8]
cmp edx, ebx
jb 0x180089894
mov eax, ebx
lea r8, [r8 + rax + 0x10]
mov eax, edx
sub eax, ebx
mov r10, r8
add rcx, 0x10
cmp eax, edx
ja 0x1800898a0
mov r8d, eax
mov rdx, r10
call fcn.18001ffe0
mov rcx, qword [rdi + 0x28]
mov eax, dword [rdi + 0x40]
test rcx, rcx
je 0x180089894
mov edx, eax
mov r8d, ebx
add rdx, r8
mov r8d, dword [rcx + 8]
cmp rdx, r8
ja 0x180089894
lea rcx, [rcx + rax + 0x10]
mov eax, ebx
mov qword [rbp - 0xc0], rcx
mov dword [rbp - 0xb8], eax
lea rcx, [rbp - 0xc0]
call fcn.1800878a0
mov dword [rbp - 0x40], ebx
jmp 0x1800898a6
cmp dword [rbp - 0x3c], 0
jne 0x1800891f2
movups xmm0, xmmword [rsi + 0x48]
movups xmmword [rbp - 0x58], xmm0
xor ecx, ecx
mov qword [rsi + 0x48], rcx
mov qword [rsi + 0x50], rcx
mov dword [rbp - 0x3c], 0xffffffff
mov dword [rsi + 0x10], 0xffffffff
mov rbx, qword [rbp - 0x58]
test rbx, rbx
jne 0x18008932c
mov r14d, dword [rbp - 0x50]
jmp 0x180089375
cmp byte [rsi + 0x18], 0
jne 0x18008921c
mov rcx, qword [rdi + 0x10]
mov r9d, dword [rsi + 0x14]
mov r8d, dword [rdi + 0x38]
sub r9d, r8d
mov rdx, qword [rsi + 8]
mov rax, qword [rcx]
call qword [rax + 0xb8]
mov r15d, eax
jmp 0x180089378
mov rcx, qword [rdi + 0x10]
mov r8, qword [rsi + 8]
mov r9d, dword [rdi + 0x38]
mov edx, r9d
mov eax, dword [rsi + 0x14]
sub eax, r9d
test r8, r8
je 0x18008924e
mov r9d, edx
mov r10d, eax
add r9, r10
mov r10d, dword [r8 + 8]
cmp r9, r10
ja 0x180089649
jmp 0x180089261
mov r8d, edx
or r8d, eax
jne 0x180089649
xor r8d, r8d
xor edx, edx
xor eax, eax
mov qword [rbp - 0xb0], r8
mov dword [rbp - 0xa8], edx
mov dword [rbp - 0xa4], eax
lea r8, [rbp - 0xb0]
mov r9, qword [rsi + 0x40]
lea rdx, [rbp - 0x68]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov rdx, qword [rbp - 0x68]
mov ecx, dword [rbp - 0x60]
movsx rax, word [rbp - 0x5c]
mov qword [rbp - 0x58], rdx
mov dword [rbp - 0x50], ecx
mov word [rbp - 0x4c], ax
mov byte [rbp - 0x4a], 0
mov rbx, qword [rbp - 0x58]
test rbx, rbx
mov rdi, qword [rbp - 0xd8]
je 0x1800891dc
mov rdx, rbx
lea rcx, [0x18023c970]
call fcn.18004e7c0
test rax, rax
jne 0x18008931d
movsx rdx, word [rbp - 0x4c]
lea rcx, [rbx + 0x50]
call fcn.1800ae900
test eax, eax
jne 0x1800891dc
xor eax, eax
mov dword [rbp - 0x3c], eax
mov dword [rsi + 0x10], eax
lea rdi, [rsi + 0x48]
lea rsi, [rbp - 0x58]
call fcn.1800dee40
movsq qword [rdi], qword [rsi]
mov rsi, qword [rbp + 0x10]
lea rdx, [rsi + 0x20]
mov rcx, rsi
call fcn.1800d7e00
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.1800d8ab0
jmp 0x180089659
test dword [rax + 0x34], 0x1600000
jne 0x1800891dc
jmp 0x1800892e5
mov rdx, rbx
lea rcx, [0x18023c970]
call fcn.18004e7c0
mov r15, rax
test r15, r15
jne 0x180089355
mov rcx, rbx
movsx rdx, word [rbp - 0x4c]
call fcn.1800dbf30
mov r14d, eax
jmp 0x180089375
mov ecx, dword [r15 + 0x34]
and ecx, 0x11000000
cmp ecx, 0x1000000
je 0x180089371
mov rcx, r15
xor edx, edx
call fcn.180051570
mov r14d, dword [r15 + 0x38]
mov r15d, r14d
mov dword [rbp - 0x44], r15d
test r15d, r15d
sete cl
movzx ecx, cl
mov dword [rbp - 0x48], ecx
mov r9d, dword [rdi + 0x38]
lea ebx, [r9 + r15]
cmp ebx, dword [rdi + 0x3c]
jge 0x1800893b2
mov dword [rsp + 0x20], r15d
mov rcx, qword [rsi + 8]
mov edx, r9d
mov r8, qword [rdi + 0x20]
call fcn.18000ed70
mov dword [rdi + 0x38], ebx
jmp 0x18008964f
mov dword [rsp + 0x20], r9d
mov rcx, qword [rdi + 0x20]
mov r8, qword [rsi + 8]
xor edx, edx
xor r9d, r9d
call fcn.18000ed70
mov rcx, qword [rdi + 0x20]
mov eax, dword [rdi + 0x38]
test rcx, rcx
je 0x1800893e4
cmp dword [rcx + 8], eax
jb 0x180089649
add rcx, 0x10
jmp 0x1800893f0
test eax, eax
jne 0x180089649
xor ecx, ecx
xor eax, eax
mov qword [rbp - 0xc0], rcx
mov dword [rbp - 0xb8], eax
lea rcx, [rbp - 0xc0]
call fcn.1800878a0
add r15d, dword [rdi + 0x38]
mov dword [rbp - 0x44], r15d
mov eax, dword [rbp - 0x44]
mov ebx, dword [rdi + 0x3c]
cdq
idiv ebx
mov r14d, eax
imul ebx, r14d
mov ecx, dword [rbp - 0x44]
sub ecx, ebx
mov dword [rdi + 0x38], ecx
mov ecx, dword [rdi + 0x38]
test ecx, ecx
je 0x180089446
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsi + 8]
mov r8, qword [rdi + 0x20]
mov edx, ebx
xor r9d, r9d
call fcn.18000ed70
movups xmm0, xmmword [rsi + 0x30]
movups xmmword [rbp - 0xd0], xmm0
lea rcx, [rbp - 0xd0]
lea rdx, [rbp - 0x80]
call fcn.1800c7ec0
test eax, eax
jne 0x1800894a5
lea rcx, [0x180226e00]
cmp qword [rcx - 8], 0
jne 0x18008963f
mov rcx, qword [0x1801fb8b8]
mov r15, rcx
mov rcx, qword [r15 + 8]
mov edx, r14d
imul edx, dword [rdi + 0x44]
cmp dword [rcx], ecx
call fcn.1800aae00
mov qword [rbp - 0xe0], rax
imul r14d, dword [rdi + 0x44]
mov dword [rbp - 0x6c], r14d
jmp 0x1800894e7
mov rcx, qword [rdi + 0x18]
mov rdx, qword [rsi + 8]
mov r9, qword [rbp - 0x80]
mov qword [rsp + 0x20], r9
mov r9d, dword [rbp - 0x78]
mov dword [rsp + 0x28], r9d
mov r9d, ebx
lea r10, [0x180228ca0]
xor r8d, r8d
call qword [r10]
mov dword [rbp - 0x6c], eax
cmp dword [rbp - 0x6c], 0
je 0x18008964f
mov ecx, dword [rbp - 0x6c]
mov dword [rbp - 0x40], ecx
jmp 0x180089880
mov rcx, qword [rbp - 0xe0]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rdi + 0x18]
mov rdx, qword [rsi + 8]
mov r9d, ebx
lea r10, [0x180228ca0]
xor r8d, r8d
call qword [r10]
mov dword [rbp - 0x6c], eax
cmp qword [rbp - 0xe0], 0
je 0x180089542
mov rdx, qword [rbp - 0xe0]
mov edx, dword [rdx + 8]
cmp edx, dword [rbp - 0x6c]
jb 0x1800895c9
mov rbx, qword [rbp - 0xe0]
add rbx, 0x10
mov r14d, dword [rbp - 0x6c]
jmp 0x180089551
cmp dword [rbp - 0x6c], 0
jne 0x1800895c9
xor ebx, ebx
xor r14d, r14d
lea r13, [rsi + 0x30]
xor r12d, r12d
xor eax, eax
mov rcx, qword [r13]
test rcx, rcx
je 0x1800895ae
mov rdx, qword [rcx]
cmp dword [rdx], 0
jl 0x180089587
lea rdx, [rbp - 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov eax, dword [rbp - 0x98]
mov r12, qword [rbp - 0xa0]
jmp 0x18008958e
lea r12, [rcx + 0x10]
mov eax, dword [rcx + 8]
mov r8d, dword [r13 + 8]
and r8d, 0x7fffffff
mov ecx, dword [r13 + 0xc]
mov edx, ecx
add rdx, r8
mov eax, eax
cmp rdx, rax
ja 0x1800895c9
add r12, r8
mov eax, ecx
mov rcx, r12
cmp r14d, eax
ja 0x1800895c3
mov r8d, r14d
mov rdx, rbx
call fcn.18001ffe0
jmp 0x1800895cf
call fcn.180020cc0
int3
call fcn.180020c90
int3
cmp dword [rbp - 0x3c], 0
jge 0x1800894d2
cmp qword [rbp - 0xe0], 0
je 0x180089602
mov rcx, qword [rbp - 0xe0]
mov ecx, dword [rcx + 8]
cmp ecx, dword [rbp - 0x6c]
jb 0x180089649
mov rax, qword [rbp - 0xe0]
add rax, 0x10
mov ebx, dword [rbp - 0x6c]
jmp 0x18008960c
cmp dword [rbp - 0x6c], 0
jne 0x180089649
xor eax, eax
xor ebx, ebx
mov qword [rbp - 0xc0], rax
mov dword [rbp - 0xb8], ebx
lea rcx, [rbp - 0xc0]
call fcn.1800878a0
mov rcx, qword [r15 + 8]
mov rdx, qword [rbp - 0xe0]
xor r8d, r8d
cmp dword [rcx], ecx
call fcn.1800ab060
jmp 0x1800894d2
call fcn.1800db9f4
jmp 0x180089477
call fcn.180020c90
int3
mov rcx, rsp
call fcn.1800899c5
jmp 0x180089666
mov rcx, rsp
call fcn.1800899c5
jmp 0x1800898f5
xor eax, eax
mov rsi, qword [rbp + 0x10]
mov qword [rsi + 8], rax
mov rdi, qword [rbp - 0xd8]
cmp dword [rbp - 0x48], 0
jne 0x180089812
jmp 0x180089687
add dword [rdi + 0x38], r15d
mov r8d, dword [rdi + 0x38]
mov r9d, dword [rdi + 0x3c]
cmp r8d, r9d
jge 0x180089812
cmp byte [rsi + 0x18], 0
jne 0x1800896ba
mov rcx, qword [rdi + 0x10]
sub r9d, r8d
mov rdx, qword [rdi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0xb8]
mov r15d, eax
jmp 0x180089805
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x20]
mov eax, r8d
sub r9d, r8d
test rdx, rdx
je 0x1800896e5
mov r8d, eax
mov r10d, r9d
add r8, r10
mov r10d, dword [rdx + 8]
cmp r8, r10
ja 0x180089894
jmp 0x1800896f7
mov edx, eax
or edx, r9d
jne 0x180089894
xor edx, edx
xor eax, eax
xor r9d, r9d
mov qword [rbp - 0xb0], rdx
mov dword [rbp - 0xa8], eax
mov dword [rbp - 0xa4], r9d
lea r8, [rbp - 0xb0]
mov r9, qword [rsi + 0x40]
lea rdx, [rbp - 0x68]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov rdx, qword [rbp - 0x68]
mov ecx, dword [rbp - 0x60]
movsx rax, word [rbp - 0x5c]
mov qword [rbp - 0x58], rdx
mov dword [rbp - 0x50], ecx
mov word [rbp - 0x4c], ax
mov byte [rbp - 0x4a], 0
mov r15, qword [rbp - 0x58]
test r15, r15
je 0x1800897ad
mov rdx, r15
lea rcx, [0x18023c970]
call fcn.18004e7c0
test rax, rax
jne 0x1800897a4
movsx rdx, word [rbp - 0x4c]
lea rcx, [r15 + 0x50]
call fcn.1800ae900
test eax, eax
jne 0x1800897ad
mov dword [rsi + 0x10], 1
lea rdi, [rsi + 0x48]
lea rsi, [rbp - 0x58]
call fcn.1800dee40
movsq qword [rdi], qword [rsi]
mov rsi, qword [rbp + 0x10]
lea rdx, [rsi + 0x20]
mov rcx, rsi
call fcn.1800d7e00
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.1800d8ab0
jmp 0x1800898f5
test dword [rax + 0x34], 0x1600000
je 0x18008976d
mov rbx, qword [rbp - 0x58]
test rbx, rbx
je 0x180089801
mov rdx, rbx
lea rcx, [0x18023c970]
call fcn.18004e7c0
mov r14, rax
test r14, r14
jne 0x1800897df
mov rcx, rbx
movsx rdx, word [rbp - 0x4c]
call fcn.1800dbf30
mov r15d, eax
jmp 0x180089805
mov ecx, dword [r14 + 0x34]
and ecx, 0x11000000
cmp ecx, 0x1000000
je 0x1800897fb
mov rcx, r14
xor edx, edx
call fcn.180051570
mov r15d, dword [r14 + 0x38]
jmp 0x180089805
mov r15d, dword [rbp - 0x50]
mov dword [rbp - 0x44], r15d
test r15d, r15d
jg 0x180089683
cmp dword [rbp - 0x44], 0
jle 0x180089848
mov rcx, qword [rdi + 0x28]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rdi + 0x18]
mov r9d, dword [rdi + 0x38]
mov rdx, qword [rdi + 0x20]
lea r10, [0x180228ca0]
xor r8d, r8d
call qword [r10]
mov dword [rdi + 0x40], eax
jmp 0x180088fe4
mov rcx, qword [rdi + 0x18]
mov r9d, dword [rdi + 0x38]
mov rdx, qword [rdi + 0x20]
lea r10, [0x180228ce0]
xor r8d, r8d
call qword [r10]
lea rcx, [rdi + 0x28]
mov rdx, rax
call fcn.1800dec50
mov rcx, qword [rdi + 0x28]
mov ecx, dword [rcx + 8]
mov dword [rdi + 0x40], ecx
mov byte [rdi + 0x4a], 1
jmp 0x180088fe4
mov rcx, rsp
call fcn.1800899c5
jmp 0x1800898a6
call fcn.1800db9f4
jmp 0x180089048
call fcn.180020c90
int3
call fcn.18005c1e0
int3
call fcn.180020cc0
int3
mov rsi, qword [rbp + 0x10]
mov dword [rsi + 0x10], 0xfffffffe
add rsi, 0x20
cmp qword [rsi], 0
je 0x1800898ce
mov rcx, qword [rsi]
mov edx, dword [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.1800ae540
test eax, eax
jne 0x1800898f5
jmp 0x18008990a
mov ecx, dword [rbp - 0x40]
mov dword [rsi + 8], ecx
lea rcx, [0x180226e20]
cmp qword [rcx - 8], 0
jne 0x180089915
mov rcx, qword [0x1801fb900]
mov rdx, qword [rcx + 8]
mov rcx, rsi
call fcn.1800decc0
nop
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, 0x18
call fcn.180021050
int3
call fcn.1800dba74
jmp 0x1800898e2