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

Disassembly:
lea r12, [rsp - 0x360]
cmp r12, qword [r14 + 0x10]
jbe 0x3097949e7
push rbp
mov rbp, rsp
sub rsp, 0x3d8
mov qword [rsp + 0x3e8], rax
nop
lea rax, [0x3097d6000]
call fcn.3096ce980
mov qword [rsp + 0x2b0], rax
mov qword [rax], 0
mov rcx, qword [rsp + 0x3e8]
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x1dc], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x1ec], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rsp + 0x1fc], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rsp + 0x20c], xmm0
mov rbx, rax
lea rdi, [0x3099b52e0]
lea rsi, [0x3097e20c0]
lea r8, [rsp + 0x1dc]
lea rax, [0x309862560]
lea rcx, [0x309863150]
nop
call fcn.3097631a0
mov rcx, qword [rsp + 0x3e8]
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x19c], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x1ac], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rsp + 0x1bc], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rsp + 0x1cc], xmm0
lea rax, [0x3097e20c0]
lea rbx, [rsp + 0x19c]
call fcn.309764520
mov rcx, qword [rsp + 0x3e8]
cmp byte [rcx + 0x40], 0
nop dword [rax]
je 0x309793a79
mov qword [rsp + 0x2a0], rax
movups xmm0, xmmword [rcx + 0x41]
movups xmmword [rsp + 0x76], xmm0
movups xmm0, xmmword [rcx + 0x51]
movups xmmword [rsp + 0x86], xmm0
movups xmm0, xmmword [rcx + 0x61]
movups xmmword [rsp + 0x96], xmm0
movups xmm0, xmmword [rcx + 0x71]
movups xmmword [rsp + 0xa6], xmm0
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c5c60]
lea r8, [rsp + 0x76]
lea rcx, [0x309863150]
call fcn.3097631a0
mov rdx, qword [rsp + 0x3e8]
movups xmm0, xmmword [rdx + 0x41]
movups xmmword [rsp + 0x36], xmm0
movups xmm0, xmmword [rdx + 0x51]
movups xmmword [rsp + 0x46], xmm0
movups xmm0, xmmword [rdx + 0x61]
movups xmmword [rsp + 0x56], xmm0
movups xmm0, xmmword [rdx + 0x71]
movups xmmword [rsp + 0x66], xmm0
lea rax, [0x3097c5c60]
lea rbx, [rsp + 0x36]
call fcn.309764520
mov rdx, qword [rsp + 0x2a0]
add rax, rdx
mov rcx, qword [rsp + 0x3e8]
mov rdx, qword [rcx + 0x88]
test rdx, rdx
je 0x309793b03
mov qword [rsp + 0x248], rax
mov r9, qword [rcx + 0x90]
mov r10, qword [rcx + 0x98]
mov qword [rsp + 0x390], rdx
mov qword [rsp + 0x398], r9
mov qword [rsp + 0x3a0], r10
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2f20]
lea r8, [rsp + 0x390]
lea rcx, [0x309863150]
nop
call fcn.3097631a0
mov rdx, qword [rsp + 0x3e8]
mov r9, qword [rdx + 0x90]
mov r10, qword [rsp + 0x248]
lea rax, [r10 + r9]
mov rcx, rdx
mov ebx, dword [rcx + 0x3c]
cmp eax, ebx
je 0x309793b90
mov qword [rsp + 0x298], rax
sub ebx, eax
mov dword [rsp + 0x21c], ebx
mov ecx, ebx
lea rax, [0x3097c4420]
call fcn.30970c440
mov qword [rsp + 0x378], rax
mov edx, dword [rsp + 0x21c]
mov qword [rsp + 0x380], rdx
mov qword [rsp + 0x388], rdx
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2f20]
lea r8, [rsp + 0x378]
call fcn.3097631a0
mov edx, dword [rsp + 0x21c]
mov rsi, qword [rsp + 0x298]
lea rax, [rsi + rdx]
mov qword [rsp + 0x248], rax
lea rax, [0x3097c5720]
nop
call fcn.3096ce980
mov dword [rax], 0x4550
mov qword [rsp + 0x360], rax
mov qword [rsp + 0x368], 4
mov qword [rsp + 0x370], 4
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2f20]
lea r8, [rsp + 0x360]
call fcn.3097631a0
mov rcx, qword [rsp + 0x3e8]
mov rdx, qword [rcx + 0xa0]
mov qword [rsp + 0x188], rdx
movups xmm0, xmmword [rcx + 0xa4]
movups xmmword [rsp + 0x18c], xmm0
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097ddb00]
lea r8, [rsp + 0x188]
lea rcx, [0x309863150]
call fcn.3097631a0
mov rcx, qword [rsp + 0x3e8]
mov rdx, qword [rcx + 0xa0]
mov qword [rsp + 0x174], rdx
movups xmm0, xmmword [rcx + 0xa4]
movups xmmword [rsp + 0x178], xmm0
lea rax, [0x3097ddb00]
lea rbx, [rsp + 0x174]
call fcn.309764520
mov rcx, qword [rsp + 0x3e8]
movzx edx, word [rcx + 0xa0]
mov word [rsp + 0xb6], dx
mov rbx, qword [rsp + 0x248]
add rbx, rax
mov qword [rsp + 0x2a0], rbx
nop word [rax + rax]
cmp dx, 0x14c
jne 0x309793d60
mov rax, qword [rcx + 0xb8]
lea rsi, [0x3097c0660]
nop dword [rax]
cmp rax, rsi
jne 0x3097949d7
mov r8, qword [rcx + 0xc0]
mov qword [rsp + 0x3c8], r8
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rdi, [0x3099b52e0]
lea rcx, [0x309863150]
call fcn.3097631a0
lea rax, [0x3097c0660]
mov rbx, qword [rsp + 0x3c8]
call fcn.309764520
mov rdx, qword [rsp + 0x2a0]
lea rdx, [rdx + rax]
lea rdx, [rdx + 4]
mov r9, qword [rsp + 0x3c8]
mov r10d, dword [r9 + 0x80]
mov r9d, dword [r9 + 0x84]
jmp 0x309793df4
cmp dx, 0x8664
jne 0x309793e7f
mov rax, qword [rcx + 0xb8]
lea rsi, [0x3097c06a0]
nop dword [rax]
cmp rax, rsi
jne 0x3097949c8
mov r8, qword [rcx + 0xc0]
mov qword [rsp + 0x3c8], r8
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rdi, [0x3099b52e0]
lea rcx, [0x309863150]
call fcn.3097631a0
lea rax, [0x3097c06a0]
mov rbx, qword [rsp + 0x3c8]
call fcn.309764520
mov rdx, qword [rsp + 0x2a0]
lea rdx, [rdx + rax]
lea rdx, [rdx + 4]
mov r9, qword [rsp + 0x3c8]
mov r10d, dword [r9 + 0x90]
mov r9d, dword [r9 + 0x94]
mov dword [rsp + 0xb8], r9d
mov dword [rsp + 0xbc], r10d
mov qword [rsp + 0x248], rdx
mov rsi, qword [rsp + 0x3e8]
mov rcx, qword [rsi + 0xd0]
mov qword [rsp + 0x250], rcx
lea rax, [0x3097df620]
mov rbx, rcx
call fcn.30970c440
mov qword [rsp + 0x3c0], rax
mov rdx, qword [rsp + 0x3e8]
mov rsi, qword [rdx + 0xc8]
mov qword [rsp + 0x3b8], rsi
mov rdi, qword [rdx + 0xd0]
mov qword [rsp + 0x2a0], rdi
mov r8, qword [rsp + 0x2b0]
mov r9, qword [rsp + 0x250]
mov r10, qword [rsp + 0x248]
xor ecx, ecx
jmp 0x309794000
nop
lea rax, [0x3097ce300]
call fcn.3096ce980
mov qword [rax + 8], 0x1a
lea rcx, [0x3097ed97c]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x309862480]
mov rsi, rax
xor eax, eax
add rsp, 0x3d8
pop rbp
ret
mov qword [rsp + 0x240], rcx
mov qword [rsp + 0x290], r10
lea rdx, [rcx + rcx*4]
lea r9, [rax + rdx*8]
lea r9, [r9 + 8]
mov r10, qword [rsp + 0xf0]
mov qword [rax + rdx*8], r10
movups xmm0, xmmword [rsp + 0xf8]
movups xmmword [r9], xmm0
movups xmm0, xmmword [rsp + 0x108]
movups xmmword [r9 + 0x10], xmm0
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x14c], rdx
movups xmm0, xmmword [rsp + 0xf8]
movups xmmword [rsp + 0x154], xmm0
movups xmm0, xmmword [rsp + 0x108]
movups xmmword [rsp + 0x164], xmm0
mov rbx, r8
lea rdi, [0x3099b52e0]
lea rsi, [0x3097df620]
lea r8, [rsp + 0x14c]
lea rax, [0x309862560]
lea rcx, [0x309863150]
call fcn.3097631a0
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x124], rdx
movups xmm0, xmmword [rsp + 0xf8]
movups xmmword [rsp + 0x12c], xmm0
movups xmm0, xmmword [rsp + 0x108]
movups xmmword [rsp + 0x13c], xmm0
lea rax, [0x3097df620]
lea rbx, [rsp + 0x124]
call fcn.309764520
mov rcx, qword [rsp + 0x240]
inc rcx
mov rdx, qword [rsp + 0x290]
lea r10, [rdx + rax]
mov rdx, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x2b0]
mov r9, qword [rsp + 0x3c0]
mov r11, qword [rsp + 0x250]
mov r12, qword [rsp + 0x3e8]
mov r13, qword [rsp + 0x3b8]
mov rax, r9
mov rdx, r12
mov rsi, r13
mov rdi, qword [rsp + 0x2a0]
mov r8, rbx
mov r9, r11
nop word [rax + rax]
cmp rcx, rdi
jge 0x3097940d2
mov r11, qword [rsi + rcx*8]
movups xmmword [rsp + 0xf0], xmm15
movups xmmword [rsp + 0xf8], xmm15
movups xmmword [rsp + 0x108], xmm15
mov r12, qword [r11 + 0x10]
mov qword [rsp + 0xf0], r12
mov r12d, dword [r11 + 0x18]
mov dword [rsp + 0xf8], r12d
mov r12d, dword [r11 + 0x1c]
mov dword [rsp + 0xfc], r12d
mov r12d, dword [r11 + 0x20]
mov dword [rsp + 0x100], r12d
mov r12d, dword [r11 + 0x24]
mov dword [rsp + 0x104], r12d
mov r12d, dword [r11 + 0x28]
mov dword [rsp + 0x108], r12d
mov r12d, dword [r11 + 0x2c]
mov dword [rsp + 0x10c], r12d
movzx r12d, word [r11 + 0x30]
mov word [rsp + 0x110], r12w
movzx r12d, word [r11 + 0x32]
mov word [rsp + 0x112], r12w
mov r11d, dword [r11 + 0x34]
mov dword [rsp + 0x114], r11d
mov r11d, dword [rdx + 0xa8]
cmp dword [rsp + 0xfc], r11d
jne 0x3097940c4
mov r11d, dword [rsp + 0x104]
mov dword [rdx + 0xa8], r11d
cmp rcx, r9
jb 0x309793eb8
jmp 0x3097949bd
xor ecx, ecx
jmp 0x30979416d
mov qword [rsp + 0x258], r11
mov qword [rsp + 0x348], r12
mov qword [rsp + 0x350], r11
mov qword [rsp + 0x358], r10
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2f20]
lea r8, [rsp + 0x348]
call fcn.3097631a0
mov rax, qword [rsp + 0x3c0]
add rax, 0x28
mov rcx, qword [rsp + 0x238]
inc rcx
mov rdx, qword [rsp + 0x258]
mov r9, qword [rsp + 0x248]
lea r10, [r9 + rdx]
mov rdx, qword [rsp + 0x3e8]
mov r9, qword [rsp + 0x250]
mov r8, qword [rsp + 0x2b0]
mov qword [rsp + 0x248], r10
cmp rcx, r9
jge 0x309794475
mov rbx, qword [rax]
mov qword [rsp + 0xc8], rbx
movups xmm0, xmmword [rax + 8]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rax + 0x18]
movups xmmword [rsp + 0xe0], xmm0
mov rbx, qword [rdx + 0xd0]
cmp rcx, rbx
jae 0x3097949b2
mov qword [rsp + 0x238], rcx
mov qword [rsp + 0x3c0], rax
mov rbx, qword [rdx + 0xc8]
mov rax, qword [rbx + rcx*8]
mov qword [rsp + 0x2c0], rax
call fcn.309792d20
nop dword [rax]
test rdi, rdi
jne 0x309794465
mov rdx, qword [rsp + 0x2c0]
mov r9d, dword [rdx + 0x24]
test rax, rax
mov r10d, 0
cmovne r10, rcx
mov r11d, 0
cmovne r11, rbx
mov qword [rsp + 0x258], r11
lea r12, [0x3099b52e0]
cmovne r12, rax
nop
test r9d, r9d
je 0x3097942b4
mov r13, qword [rsp + 0x248]
cmp r13, r9
jae 0x3097942bc
mov dword [rsp + 0x21c], r9d
mov qword [rsp + 0x260], r10
mov qword [rsp + 0x2b8], r12
mov ecx, r9d
sub rcx, r13
mov qword [rsp + 0x298], rcx
lea rax, [0x3097c4420]
mov rbx, rcx
call fcn.30970c440
mov rbx, rax
mov rcx, qword [rsp + 0x298]
mov rdi, rcx
mov rax, qword [rsp + 0x2b0]
call fcn.309738120
mov rdx, qword [rsp + 0x2c0]
mov r10, qword [rsp + 0x260]
mov r11, qword [rsp + 0x258]
mov r12, qword [rsp + 0x2b8]
mov r13d, dword [rsp + 0x21c]
jmp 0x3097942bc
mov r13, qword [rsp + 0x248]
mov qword [rsp + 0x248], r13
mov r9, qword [rsp + 0x3e8]
mov r15d, dword [r9 + 0x150]
mov eax, dword [rdx + 0x24]
cmp eax, r15d
ja 0x3097940d9
mov edx, dword [rdx + 0x20]
add rdx, rax
mov rdi, qword [r9 + 0x160]
sub rdx, rdi
mov rbx, qword [r9 + 0x158]
cmp r15, rdx
jge 0x3097940d9
lea rdx, [rdi + r11]
cmp r10, rdx
jae 0x30979434e
mov qword [rsp + 0x2a0], rdi
mov qword [rsp + 0x3b0], rbx
mov rax, r12
mov rbx, rdx
mov rcx, r10
lea rsi, [0x3097c4420]
call fcn.30970c520
mov rdi, qword [rsp + 0x2a0]
mov r11, qword [rsp + 0x258]
mov rdx, rbx
mov r12, rax
mov r10, rcx
mov rbx, qword [rsp + 0x3b0]
mov qword [rsp + 0x2a0], r10
mov qword [rsp + 0x258], rdx
mov qword [rsp + 0x3b0], r12
lea rax, [r12 + r11]
mov rcx, rdi
call fcn.309728160
mov ecx, dword [rsp + 0xd8]
mov rdx, qword [rsp + 0x258]
cmp edx, ecx
jb 0x30979439a
mov rax, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x3b0]
jmp 0x309794454
sub ecx, edx
mov dword [rsp + 0xc0], ecx
lea rax, [0x3097c4420]
mov ebx, ecx
call fcn.30970c440
mov rdx, qword [rsp + 0x258]
mov edi, dword [rsp + 0xc0]
lea rbx, [rdi + rdx]
mov rcx, qword [rsp + 0x2a0]
cmp rcx, rbx
jb 0x3097943db
mov rsi, qword [rsp + 0x3b0]
jmp 0x309794411
mov qword [rsp + 0x3a8], rax
mov rax, qword [rsp + 0x3b0]
lea rsi, [0x3097c4420]
call fcn.30970c520
mov rdx, qword [rsp + 0x258]
mov edi, dword [rsp + 0xc0]
mov rsi, rax
mov rax, qword [rsp + 0x3a8]
mov qword [rsp + 0x2a0], rcx
mov qword [rsp + 0x258], rbx
mov qword [rsp + 0x3b0], rsi
add rdx, rsi
mov r8, rax
mov rax, rdx
mov rbx, r8
mov ecx, edi
call fcn.309728160
mov rax, qword [rsp + 0x2a0]
mov rdx, qword [rsp + 0x258]
mov rcx, qword [rsp + 0x3b0]
mov r11, rdx
mov r10, rax
mov r12, rcx
nop dword [rax]
jmp 0x3097940d9
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x3d8
pop rbp
ret
mov r9, qword [rdx + 0x100]
mov r10, qword [rdx + 0x108]
mov r11, qword [rdx + 0x110]
mov qword [rsp + 0x330], r9
mov qword [rsp + 0x338], r10
mov qword [rsp + 0x340], r11
lea rax, [0x309862560]
mov rbx, r8
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2de0]
lea r8, [rsp + 0x330]
call fcn.3097631a0
mov rdx, qword [rsp + 0x3e8]
mov r9, qword [rdx + 0x100]
mov r10, qword [rdx + 0x108]
mov r11, qword [rdx + 0x110]
mov qword [rsp + 0x318], r9
mov qword [rsp + 0x320], r10
mov qword [rsp + 0x328], r11
lea rax, [0x3097c2de0]
lea rbx, [rsp + 0x318]
call fcn.309764520
mov rdx, qword [rsp + 0x248]
add rdx, rax
mov qword [rsp + 0x248], rdx
mov r9, qword [rsp + 0x3e8]
mov r10, qword [r9 + 0x118]
mov r11, qword [r9 + 0x120]
mov r12, qword [r9 + 0x128]
mov qword [rsp + 0x300], r10
mov qword [rsp + 0x308], r11
mov qword [rsp + 0x310], r12
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c8f40]
lea r8, [rsp + 0x300]
call fcn.3097631a0
mov rdx, qword [rsp + 0x3e8]
mov r9, qword [rdx + 0x118]
mov r10, qword [rdx + 0x120]
mov r11, qword [rdx + 0x128]
mov qword [rsp + 0x2e8], r9
mov qword [rsp + 0x2f0], r10
mov qword [rsp + 0x2f8], r11
lea rax, [0x3097c8f40]
lea rbx, [rsp + 0x2e8]
call fcn.309764520
mov rdx, qword [rsp + 0x3e8]
mov r9, qword [rdx + 0x130]
mov r10, qword [rsp + 0x248]
add r10, rax
mov r11, qword [rdx + 0x138]
test r9, r9
je 0x309794604
mov rax, r11
jmp 0x30979460d
mov rax, r11
xor r10d, r10d
xor r11d, r11d
mov dword [rsp + 0xc4], r11d
mov dword [rsp + 0x118], r10d
mov r12, qword [rdx + 0x140]
mov qword [rsp + 0x2d0], r9
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x2e0], r12
lea rax, [0x309862560]
mov rbx, qword [rsp + 0x2b0]
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c2f20]
lea r8, [rsp + 0x2d0]
call fcn.3097631a0
mov rdx, qword [rsp + 0x2b0]
mov rcx, qword [rdx + 8]
mov rax, qword [rdx + 0x18]
nop
nop
cmp rax, rcx
ja 0x3097949ad
mov r8, qword [rdx]
mov rdx, qword [rdx + 0x10]
sub rdx, rax
mov qword [rsp + 0x230], rdx
mov r9, rdx
neg rdx
sar rdx, 0x3f
and rdx, rax
sub rcx, rax
mov qword [rsp + 0x228], rcx
add rdx, r8
mov qword [rsp + 0x2a8], rdx
mov r8d, dword [rsp + 0x118]
mov r10d, dword [rsp + 0xbc]
cmp r8d, r10d
je 0x3097946dd
mov r10d, dword [rsp + 0xc4]
jmp 0x3097946f6
mov r10d, dword [rsp + 0xc4]
mov r11d, dword [rsp + 0xb8]
cmp r10d, r11d
je 0x309794981
mov qword [rsp + 0x11c], 0
mov dword [rsp + 0x11c], r8d
mov dword [rsp + 0x120], r10d
lea rax, [0x3097d6000]
call fcn.3096ce980
mov qword [rsp + 0x3d0], rax
mov rbx, rax
lea rcx, [0x309863150]
lea rdi, [0x3099b52e0]
lea rsi, [0x3097c03e0]
lea r8, [rsp + 0x11c]
lea rax, [0x309862560]
call fcn.3097631a0
movzx ecx, word [rsp + 0xb6]
nop word [rax + rax]
cmp cx, 0x14c
jne 0x30979477b
mov rsi, qword [rsp + 0x3e8]
mov esi, dword [rsi + 0x3c]
add rsi, 0x98
jmp 0x30979478d
mov rdi, qword [rsp + 0x3e8]
mov esi, dword [rdi + 0x3c]
add rsi, 0xa8
mov rdx, qword [rsp + 0x230]
cmp rsi, rdx
ja 0x3097949a5
mov rdi, qword [rsp + 0x3d0]
mov rcx, qword [rdi + 8]
mov rax, qword [rdi + 0x18]
cmp rax, rcx
ja 0x3097949a0
mov qword [rsp + 0x2a0], rcx
mov qword [rsp + 0x278], rsi
mov qword [rsp + 0x288], rax
mov rcx, qword [rdi]
mov qword [rsp + 0x3b0], rcx
mov rdx, qword [rdi + 0x10]
mov qword [rsp + 0x280], rdx
lea rax, [0x3097c03e0]
lea rbx, [rsp + 0x11c]
call fcn.309764520
mov rcx, qword [rsp + 0x278]
add rax, rcx
mov rdx, qword [rsp + 0x280]
mov rsi, qword [rsp + 0x288]
sub rdx, rsi
mov rdi, rdx
neg rdx
sar rdx, 0x3f
and rdx, rsi
mov r8, qword [rsp + 0x2a0]
sub r8, rsi
mov rsi, qword [rsp + 0x3b0]
add rdx, rsi
mov rsi, qword [rsp + 0x228]
cmp rsi, rax
jb 0x309794997
sub rsi, rax
lea rbx, [r8 + rsi]
mov r9, qword [rsp + 0x230]
mov r10, rax
sub rax, r9
sar rax, 0x3f
and r10, rax
mov r11, qword [rsp + 0x2a8]
add r10, r11
cmp rdi, rbx
jae 0x3097948c8
mov qword [rsp + 0x220], r8
mov qword [rsp + 0x2a0], rsi
mov qword [rsp + 0x3b0], r10
mov rax, rdx
mov rcx, rdi
mov rdi, rsi
lea rsi, [0x3097c4420]
call fcn.30970c520
mov rcx, qword [rsp + 0x278]
mov rsi, qword [rsp + 0x2a0]
mov r8, qword [rsp + 0x220]
mov r10, qword [rsp + 0x3b0]
mov rdx, rax
mov qword [rsp + 0x2a0], rbx
mov qword [rsp + 0x3b0], rdx
lea rdi, [rcx + rbx]
mov qword [rsp + 0x288], rdi
lea rax, [rdx + r8]
mov rbx, r10
mov rcx, rsi
call fcn.309728160
mov rcx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x288]
cmp rcx, rbx
jb 0x309794912
mov rax, qword [rsp + 0x2a8]
jmp 0x30979492e
mov rax, qword [rsp + 0x2a8]
mov rdi, qword [rsp + 0x2a0]
lea rsi, [0x3097c4420]
call fcn.30970c520
mov qword [rsp + 0x270], rcx
mov qword [rsp + 0x268], rbx
mov qword [rsp + 0x2c8], rax
mov rdx, qword [rsp + 0x278]
add rdx, rax
mov rax, rdx
mov rbx, qword [rsp + 0x3b0]
mov rcx, qword [rsp + 0x2a0]
call fcn.309728160
mov r9, qword [rsp + 0x270]
mov rcx, qword [rsp + 0x268]
mov rdx, qword [rsp + 0x2c8]
mov rax, rdx
mov rbx, rcx
mov rcx, r9
xor edi, edi
xor esi, esi
add rsp, 0x3d8
pop rbp
ret
mov rcx, rsi
call fcn.3097278a0
nop
call fcn.3097278a0
mov rcx, rsi
call fcn.309727860
call fcn.3097278a0
mov rax, rcx
mov rcx, rbx
call fcn.3097277e0
mov rax, rcx
mov rcx, r9
call fcn.3097277e0
mov rbx, rsi
lea rcx, [0x3097c8880]
call fcn.3096cb600
mov rbx, rsi
lea rcx, [0x3097c8880]
call fcn.3096cb600
nop
mov qword [rsp + 8], rax
call fcn.3097254e0
mov rax, qword [rsp + 8]
jmp fcn.3097938c0