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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x248]
sub rsp, 0x310
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
mov rax, qword [0x1403f2078]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r12d, r8d
mov rdi, rdx
mov qword [rbp - 0x80], rdx
mov r13, rcx
mov rcx, rdx
call fcn.140036090
xor r15d, r15d
mov qword [rdi + 8], r15
mov qword [rdi + 0x30], r15
mov qword [rdi + 0x38], r15
mov qword [rdi + 0x40], r15
mov rcx, rdi
call fcn.140035ae0
mov byte [rsp + 0x61], r15b
mov qword [rbp - 0x20], r15
mov esi, r15d
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x30], r15
mov eax, r15d
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x28], rax
mov r14d, dword [rdi + 0x68]
mov dword [rsp + 0x70], r14d
lea eax, [r15 + 8]
test r14d, r14d
jle 0x14003be6d
mov ebx, r14d
cmp r14d, eax
cmovl ebx, eax
test ebx, ebx
jle 0x14003be6d
movsxd rax, ebx
imul rcx, rax, 0x70
call fcn.140023310
mov rsi, rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x1c], ebx
lea eax, [r15 + 8]
mov dword [rbp - 0x20], r14d
mov edi, dword [rdi + 0x48]
mov dword [rsp + 0x6c], edi
test edi, edi
jle 0x14003be9f
mov ebx, edi
cmp edi, 8
cmovl ebx, eax
test ebx, ebx
jle 0x14003be9f
movsxd rcx, ebx
shl rcx, 5
call fcn.140023310
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x2c], ebx
mov dword [rbp - 0x30], edi
imul ecx, r14d, 0x70
movsxd r8, ecx
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov ecx, edi
shl ecx, 5
movsxd r8, ecx
xor edx, edx
mov rbx, qword [rbp - 0x78]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rbp - 0x80]
cmp dword [r9 + 0x68], 0
jle 0x14003bff4
xor ecx, ecx
mov r14d, ecx
lea rbx, [rsi + 0x44]
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [r9 + 0x70]
add rsi, r14
mov dword [rbx - 4], 0xffffffff
mov edx, ecx
cmp dword [r9 + 0x48], 0
jle 0x14003c212
mov eax, 0xffffffff
mov r8, rcx
cmp eax, 0xffffffff
jne 0x14003bf48
mov rax, qword [r9 + 0x50]
mov rcx, qword [r8 + rax]
cmp qword [rsi + 0x88], rcx
jne 0x14003bf30
mov dword [rbx - 4], edx
mov eax, edx
jmp 0x14003bf33
mov eax, dword [rbx - 4]
inc edx
add r8, 8
cmp edx, dword [r9 + 0x48]
jl 0x14003bf13
cmp eax, 0xffffffff
je 0x14003c212
mov r9d, r12d
mov r8, rsi
mov rdx, r13
lea rcx, [rbx - 0x44]
call fcn.14003cda0
test al, al
je 0x14003c212
mov eax, dword [rsi + 0x4c]
shr eax, 8
and al, 1
or byte [rsp + 0x61], al
movsxd rdi, dword [rbx - 4]
shl rdi, 5
add rdi, qword [rbp - 0x78]
mov rdx, qword [rsi + 0x38]
test rdx, rdx
jne 0x14003bf8f
mov rcx, qword [rbp - 0x80]
call fcn.140035b70
mov rdx, rax
mov qword [rbx - 0xc], rdx
cmp word [rdx], 0
je 0x14003bfbc
nop dword [rax]
movzx eax, word [rdx + 2]
test ax, ax
je 0x14003bfbc
mov ecx, eax
cmp dword [rbx], eax
cmovge ecx, dword [rbx]
mov dword [rbx], ecx
add rdx, 4
cmp word [rdx], 0
jne 0x14003bfa0
inc dword [rdi]
mov ecx, dword [rbx]
cmp dword [rdi + 4], ecx
cmovge ecx, dword [rdi + 4]
mov dword [rdi + 4], ecx
inc r15d
add rbx, 0x70
add r14, 0x90
mov r9, qword [rbp - 0x80]
cmp r15d, dword [r9 + 0x68]
mov ecx, 0
jl 0x14003bef0
mov rbx, qword [rbp - 0x78]
mov r14d, dword [rsp + 0x70]
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x64], r12d
mov esi, 1
mov dword [rsp + 0x74], esi
test r14d, r14d
jle 0x14003c2e7
mov r14, qword [rsp + 0x78]
add r14, 0x48
mov edi, dword [rsp + 0x70]
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x60], rdi
nop word [rax + rax]
movsxd r15, dword [r14 - 8]
shl r15, 5
add r15, rbx
mov edx, dword [r14 - 4]
add edx, 0x20
sar edx, 5
lea rcx, [r14 + 8]
call fcn.14003cf90
movsxd r8, dword [r14 + 8]
shl r8, 2
xor edx, edx
mov rcx, qword [r14 + 0x10]
call sub.VCRUNTIME140.dll_memset
cmp dword [r15 + 0x10], 0
jne 0x14003c08e
mov edx, dword [r15 + 4]
add edx, 0x20
sar edx, 5
lea rcx, [r15 + 0x10]
call fcn.14003cf90
movsxd r8, dword [r15 + 0x10]
shl r8, 2
xor edx, edx
mov rcx, qword [r15 + 0x18]
call sub.VCRUNTIME140.dll_memset
mov r12, qword [r14 - 0x10]
movzx eax, word [r12]
test ax, ax
je 0x14003c118
nop dword [rax]
movzx ecx, word [r12 + 2]
test cx, cx
je 0x14003c114
movzx edi, ax
cmp edi, ecx
ja 0x14003c106
mov ecx, edi
and ecx, 0x1f
shl esi, cl
movsxd rbx, edi
sar rbx, 5
mov rax, qword [r15 + 0x18]
test dword [rax + rbx*4], esi
jne 0x14003c0f0
mov edx, edi
mov rcx, qword [r14 - 0x30]
call fcn.1400cc9a0
test eax, eax
je 0x14003c0f0
inc dword [r14]
inc dword [r15 + 8]
mov rax, qword [r14 + 0x10]
or dword [rax + rbx*4], esi
mov rax, qword [r15 + 0x18]
or dword [rax + rbx*4], esi
inc r13d
inc edi
movzx eax, word [r12 + 2]
cmp edi, eax
mov esi, 1
jle 0x14003c0b2
mov dword [rsp + 0x64], r13d
add r12, 4
movzx eax, word [r12]
test ax, ax
jne 0x14003c0a0
mov rdi, qword [rbp - 0x60]
add r14, 0x70
sub rdi, 1
mov qword [rbp - 0x60], rdi
mov rbx, qword [rbp - 0x78]
jne 0x14003c030
mov rbx, qword [rsp + 0x78]
add rbx, 0x64
xor r13d, r13d
nop word [rax + rax]
movsxd rdi, dword [rbx - 0x1c]
cmp edi, dword [rbx]
jle 0x14003c184
lea rcx, [rdi + rdi*4]
shl rcx, 3
call fcn.140023310
mov rsi, rax
mov rdx, qword [rbx + 4]
test rdx, rdx
je 0x14003c17e
movsxd rcx, dword [rbx - 4]
lea r8, [rcx + rcx*4]
shl r8, 3
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 4]
call fcn.140023330
mov qword [rbx + 4], rsi
mov dword [rbx], edi
mov rdx, qword [rbx - 0xc]
mov qword [rbp - 0x60], rdx
movsxd rcx, dword [rbx - 0x14]
lea rax, [rdx + rcx*4]
mov qword [rbp - 0x68], rax
mov r15, rdx
cmp rdx, rax
jae 0x14003c2b1
mov r12d, dword [r15]
test r12d, r12d
je 0x14003c2a4
mov esi, r13d
mov r13d, 8
nop dword [rax]
bt r12d, esi
jae 0x14003c292
xorps xmm6, xmm6
xor eax, eax
movups xmmword [rbp + 0x18], xmm6
mov qword [rbp + 0x28], rax
lea rcx, [r15*8]
lea rax, [rdx*8]
sub ecx, eax
and ecx, 0xffffffe0
add ecx, esi
movzx eax, cx
mov dword [rbp + 0x20], eax
mov ecx, dword [rbx]
mov r8d, dword [rbx - 4]
cmp r8d, ecx
jne 0x14003c268
lea edi, [r8 + 1]
test ecx, ecx
je 0x14003c219
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14003c21c
xor bl, bl
jmp 0x14003cd23
mov eax, r13d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x14003c268
movsxd rax, edi
lea rcx, [rax + rax*4]
shl rcx, 3
call fcn.140023310
mov r14, rax
mov rdx, qword [rbx + 4]
test rdx, rdx
je 0x14003c25e
movsxd rcx, dword [rbx - 4]
lea r8, [rcx + rcx*4]
shl r8, 3
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 4]
call fcn.140023330
mov qword [rbx + 4], r14
mov dword [rbx], edi
mov r8d, dword [rbx - 4]
movsxd rax, r8d
lea rcx, [rax + rax*4]
mov rax, qword [rbx + 4]
movups xmmword [rax + rcx*8], xmm6
movups xmm0, xmmword [rbp + 0x18]
movups xmmword [rax + rcx*8 + 0x10], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd qword [rax + rcx*8 + 0x20], xmm1
inc dword [rbx - 4]
mov rdx, qword [rbp - 0x60]
inc esi
cmp esi, 0x20
jb 0x14003c1c0
mov rax, qword [rbp - 0x68]
xor r13d, r13d
add r15, 4
cmp r15, rax
jb 0x14003c1a4
mov rcx, qword [rbx - 0xc]
test rcx, rcx
je 0x14003c2cb
mov qword [rbx - 0x14], 0
call fcn.140023330
mov qword [rbx - 0xc], r13
add rbx, 0x70
sub qword [rbp - 0x70], 1
jne 0x14003c140
mov r13d, dword [rsp + 0x64]
mov esi, 1
xor r12d, r12d
mov eax, dword [rsp + 0x6c]
test eax, eax
jle 0x14003c322
mov rbx, qword [rbp - 0x78]
add rbx, 0x18
mov edi, eax
nop dword [rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14003c318
mov qword [rbx - 8], 0
call fcn.140023330
mov qword [rbx], r12
add rbx, 0x20
sub rdi, 1
jne 0x14003c300
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x14003c346
mov qword [rbp - 0x30], 0
mov rcx, rax
call fcn.140023330
mov rax, r12
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 8], 0
mov r15, r12
mov qword [rbp - 0x60], r12
mov qword [rbp], r12
test r13d, r13d
jle 0x14003c38f
mov ebx, r13d
cmp r13d, 8
mov eax, 8
cmovl ebx, eax
test ebx, ebx
jle 0x14003c38f
movsxd rax, ebx
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.140023310
mov r15, rax
mov qword [rbp - 0x60], rax
mov qword [rbp], rax
mov dword [rbp - 4], ebx
mov dword [rbp - 8], r13d
lea ecx, [r13*2]
add ecx, r13d
shl ecx, 3
movsxd r8, ecx
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x64], r12d
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], r12
mov ecx, 0x40000
call fcn.140023310
mov rbx, rax
mov ecx, 0x40
call fcn.140023310
mov qword [rbp - 0x58], rax
mov qword [rbp + 0x38], rax
mov r14d, 8
mov dword [rbp + 0x34], r14d
mov qword [rax], rbx
mov dword [rbp + 0x30], esi
mov ecx, r12d
mov dword [rsp + 0x68], ecx
mov r10d, r12d
mov dword [rsp + 0x6c], r12d
movss xmm6, dword [0x14013b1b4]
mov r13d, dword [rsp + 0x70]
test r13d, r13d
jle 0x14003c746
mov r9, r12
mov qword [rbp - 0x68], r12
mov rbx, qword [rsp + 0x78]
add rbx, 0x18
mov r11d, r13d
mov qword [rbp - 0x70], r13
mov rdi, qword [rbp - 0x80]
nop
mov r8, qword [rdi + 0x70]
mov edx, dword [rbx + 0x30]
test edx, edx
je 0x14003c71f
movsxd rax, r10d
lea rcx, [rax + rax*2]
lea rax, [r15 + rcx*8]
mov qword [rbx + 0x18], rax
add r10d, edx
mov dword [rsp + 0x6c], r10d
movss xmm1, dword [r9 + r8 + 0x50]
ucomiss xmm1, xmm6
jp 0x14003c46b
jne 0x14003c46b
mov byte [rsp + 0x60], 0
jmp 0x14003c484
mov byte [rsp + 0x60], 1
lea rcx, [rbp + 0x90]
call fcn.140036150
mov r9, qword [rbp - 0x68]
mov r11, qword [rbp - 0x70]
mov eax, dword [rdi + 0x14]
mov dword [rbp - 0x50], eax
mov r13d, r12d
mov dword [rbp - 0x48], r12d
cmp dword [rbx + 0x48], 0
jle 0x14003c71b
xor eax, eax
mov esi, eax
nop
mov r15, qword [rbx + 0x50]
mov edx, dword [rsi + r15 + 0x18]
mov rcx, qword [rbx]
call fcn.1400cc9a0
test eax, eax
je 0x14003c6e9
mov r8d, dword [rbx + 0xc]
mov edx, eax
mov rcx, qword [rbx]
call fcn.1400cd9a0
test eax, eax
jne 0x14003c6e9
mov rax, qword [rbx]
mov rdi, qword [rax + 0x78]
mov eax, dword [rbx + 8]
test al, 0x20
je 0x14003c4e8
mov rcx, rdi
call fcn.1400d6130
mov eax, dword [rbx + 8]
test al, 0x40
je 0x14003c4f4
mov rcx, rdi
call fcn.1400d6230
lea rax, [rdi + 0x30]
test rax, rax
je 0x14003c6e9
mov rax, qword [rbx]
mov rdi, qword [rax + 0x78]
mov edx, dword [rbx + 0x10]
mov rcx, rdi
call fcn.1400d03e0
test eax, eax
jne 0x14003c6e9
mov rax, qword [rbx]
mov r8, qword [rax + 0x78]
add r8, 0x68
mov qword [rbp - 0x10], r8
mov r9d, dword [r8 + 4]
mov dword [rsi + r15], r9d
mov r13d, dword [r8]
mov dword [rsi + r15 + 4], r13d
mov rax, qword [rbx]
mov rcx, qword [rax + 0x78]
mov eax, dword [rcx + 0x90]
mov dword [rsi + r15 + 8], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x78]
mov eax, dword [rcx + 0x94]
neg eax
mov dword [rsi + r15 + 0xc], eax
mov eax, dword [rdi + 0x58]
add eax, 0x3f
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + r15 + 0x10], xmm0
cmp byte [r8 + 0x1a], 7
sete al
mov byte [rsi + r15 + 0x14], al
imul r13d, r9d
shl r13d, 2
mov edi, dword [rsp + 0x64]
lea eax, [rdi + r13]
cmp eax, 0x40000
jle 0x14003c65d
xor eax, eax
mov edi, eax
mov dword [rsp + 0x64], eax
mov ecx, 0x40000
call fcn.140023310
mov qword [rbp - 0x40], rax
mov r8d, dword [rsp + 0x74]
cmp r8d, r14d
jne 0x14003c63c
lea edi, [r8 + 1]
test r14d, r14d
je 0x14003c5de
mov eax, r14d
cdq
sub eax, edx
sar eax, 1
add eax, r14d
jmp 0x14003c5e3
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, r14d
jle 0x14003c638
movsxd rcx, edi
shl rcx, 3
call fcn.140023310
mov r14, rax
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x14003c622
movsxd r8, dword [rsp + 0x74]
shl r8, 3
mov rdx, rax
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp - 0x58]
call fcn.140023330
mov rax, r14
mov qword [rbp - 0x58], rax
mov qword [rbp + 0x38], rax
mov r14d, edi
mov dword [rbp + 0x34], edi
mov r8d, dword [rsp + 0x74]
mov edi, dword [rsp + 0x64]
movsxd rax, r8d
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x58]
mov qword [rdx + rax*8], rcx
inc r8d
mov dword [rsp + 0x74], r8d
mov dword [rbp + 0x30], r8d
mov r9d, dword [rsi + r15]
jmp 0x14003c666
mov rdx, qword [rbp - 0x58]
mov r8d, dword [rsp + 0x74]
lea eax, [r8 - 1]
cdqe
movsxd rcx, edi
mov r8, qword [rdx + rax*8]
add r8, rcx
mov qword [rsi + r15 + 0x20], r8
add edi, r13d
mov dword [rsp + 0x64], edi
lea rax, [rbp + 0x90]
cmp byte [rsp + 0x60], 0
mov ecx, 0
cmove rax, rcx
lea rcx, [rbx - 0x18]
mov qword [rsp + 0x20], rax
mov rdx, qword [rbp - 0x10]
call fcn.14003b1f0
mov ecx, dword [rsi + r15]
add ecx, dword [rbp - 0x50]
mov rax, qword [rbx + 0x18]
mov dword [r12 + rax + 4], ecx
mov ecx, dword [rsi + r15 + 4]
add ecx, dword [rbp - 0x50]
mov rax, qword [rbx + 0x18]
mov dword [r12 + rax + 8], ecx
mov rcx, qword [rbx + 0x18]
mov eax, dword [r12 + rcx + 8]
imul eax, dword [r12 + rcx + 4]
mov ecx, dword [rsp + 0x68]
add ecx, eax
mov dword [rsp + 0x68], ecx
mov r13d, dword [rbp - 0x48]
jmp 0x14003c6ed
mov ecx, dword [rsp + 0x68]
inc r13d
mov dword [rbp - 0x48], r13d
add rsi, 0x28
add r12, 0x18
cmp r13d, dword [rbx + 0x48]
jl 0x14003c4a0
mov r9, qword [rbp - 0x68]
mov r11, qword [rbp - 0x70]
mov rdi, qword [rbp - 0x80]
mov r15, qword [rbp - 0x60]
xor r12d, r12d
jmp 0x14003c71f
mov ecx, dword [rsp + 0x68]
add rbx, 0x70
add r9, 0x90
mov qword [rbp - 0x68], r9
sub r11, 1
mov qword [rbp - 0x70], r11
mov r10d, dword [rsp + 0x6c]
jne 0x14003c430
mov r13d, dword [rsp + 0x70]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14003c75e
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14003c766
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvttss2si eax, xmm0
inc eax
mov r12, qword [rbp - 0x80]
xor r15d, r15d
mov dword [r12 + 0x34], r15d
mov ebx, dword [r12 + 0x10]
test ebx, ebx
jg 0x14003c7bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x140140be8]
jb 0x14003c798
mov ebx, 0x1000
jmp 0x14003c7bc
comiss xmm0, dword [0x140140be4]
jb 0x14003c7a8
mov ebx, 0x800
jmp 0x14003c7bc
mov ebx, 0x200
mov eax, 0x400
comiss xmm0, dword [0x140140be0]
cmovae ebx, eax
mov dword [r12 + 0x30], ebx
sub ebx, dword [r12 + 0x14]
mov qword [rbp - 0x40], r15
mov r14, r15
mov qword [rbp - 0x38], r15
test ebx, ebx
jle 0x14003c7fc
mov edi, ebx
cmp ebx, 8
mov eax, 8
cmovl edi, eax
test edi, edi
jle 0x14003c7fc
movsxd rcx, edi
shl rcx, 4
call fcn.140023310
mov r14, rax
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x3c], edi
mov dword [rbp - 0x40], ebx
mov dword [rsp + 0x20], ebx
mov r9, r14
mov r8d, 0x8000
mov edx, dword [r12 + 0x30]
lea rcx, [rbp + 0x40]
call fcn.14003d040
lea rdx, [rbp + 0x40]
mov rcx, r12
call fcn.1400361a0
mov rsi, qword [rsp + 0x78]
test r13d, r13d
jle 0x14003c899
lea rbx, [rsi + 0x48]
mov edi, r13d
mov r8d, dword [rbx]
test r8d, r8d
je 0x14003c88f
mov rdx, qword [rbx - 0x18]
lea rcx, [rbp + 0x40]
call fcn.14003d210
mov r8d, r15d
cmp dword [rbx], r15d
jle 0x14003c88f
mov rdx, r15
nop word [rax + rax]
mov rax, qword [rbx - 0x18]
cmp dword [rax + rdx + 0x14], 0
je 0x14003c883
mov ecx, dword [rax + rdx + 0x10]
add ecx, dword [rax + rdx + 8]
cmp dword [r12 + 0x34], ecx
cmovge ecx, dword [r12 + 0x34]
mov dword [r12 + 0x34], ecx
inc r8d
add rdx, 0x18
cmp r8d, dword [rbx]
jl 0x14003c860
add rbx, 0x70
sub rdi, 1
jne 0x14003c837
mov eax, dword [r12 + 0x34]
test byte [r12], 1
jne 0x14003c8ca
lea ecx, [rax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
lea ecx, [rax + 1]
mov dword [r12 + 0x34], ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm6
divss xmm1, xmm0
movsxd rax, dword [r12 + 0x30]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
movss dword [r12 + 0x38], xmm6
movss dword [r12 + 0x3c], xmm1
mov rbx, rax
movsxd rax, ecx
imul rbx, rax
cmp byte [rsp + 0x61], 0
je 0x14003c926
lea rbx, [rbx*4]
mov rcx, rbx
call fcn.140023310
mov qword [r12 + 0x28], rax
jmp 0x14003c933
mov rcx, rbx
call fcn.140023310
mov qword [r12 + 0x20], rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
xor al, al
mov byte [rsp + 0x60], al
test r13d, r13d
jle 0x14003cc57
mov rdi, r15
mov qword [rbp - 0x70], r15
lea r13, [rsi + 8]
mov esi, dword [rsp + 0x70]
mov qword [rbp - 0x68], rsi
movss xmm12, dword [0x14013b1b0]
nop dword [rax + rax]
cmp dword [r13 + 0x40], 0
je 0x14003cc29
mov r15, qword [r12 + 0x70]
add r15, rdi
mov qword [rbp - 0x50], r15
mov rbx, qword [r15 + 0x88]
mov qword [rbp - 0x10], rbx
movss xmm0, dword [r13]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [r13 - 4]
mov r8, r15
mov rdx, rbx
mov rcx, r12
call fcn.1400367b0
movss xmm11, dword [r15 + 0x2c]
movss xmm0, dword [rbx + 0x60]
addss xmm0, xmm12
cvttss2si eax, xmm0
movd xmm10, eax
cvtdq2ps xmm10, xmm10
addss xmm10, dword [r15 + 0x30]
mov edx, dword [r12 + 0x14]
mov dword [rsp + 0x64], edx
xor eax, eax
mov dword [rsp + 0x6c], eax
cmp dword [r13 + 0x40], eax
jle 0x14003cc25
mov r12d, eax
mov ebx, eax
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [r13 + 0x60]
mov rcx, qword [r13 + 0x28]
cmp dword [r12 + rcx + 4], 0
jne 0x14003ca1c
cmp dword [r12 + rcx + 8], 0
je 0x14003cbfd
mov esi, dword [r12 + rcx + 0xc]
add esi, edx
mov r14d, dword [r12 + rcx + 0x10]
add r14d, edx
movd xmm3, dword [rbx + rdi + 8]
cvtdq2ps xmm3, xmm3
addss xmm3, xmm11
movd xmm9, dword [rbx + rdi + 0xc]
cvtdq2ps xmm9, xmm9
addss xmm9, xmm10
mov eax, dword [rbx + rdi]
movd xmm8, eax
cvtdq2ps xmm8, xmm8
addss xmm8, xmm3
mov ecx, dword [rbx + rdi + 4]
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
addss xmm7, xmm9
mov rdx, qword [rbp - 0x80]
movd xmm0, dword [rdx + 0x30]
cvtdq2ps xmm0, xmm0
movd xmm6, esi
cvtdq2ps xmm6, xmm6
divss xmm6, xmm0
movd xmm2, dword [rdx + 0x34]
cvtdq2ps xmm2, xmm2
movd xmm5, r14d
cvtdq2ps xmm5, xmm5
divss xmm5, xmm2
add eax, esi
movd xmm4, eax
cvtdq2ps xmm4, xmm4
divss xmm4, xmm0
lea eax, [rcx + r14]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, xmm2
movss xmm0, dword [rbx + rdi + 0x10]
movss dword [rsp + 0x58], xmm0
movss dword [rsp + 0x50], xmm1
movss dword [rsp + 0x48], xmm4
movss dword [rsp + 0x40], xmm5
movss dword [rsp + 0x38], xmm6
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm8
movss dword [rsp + 0x20], xmm9
movzx r8d, word [rbx + rdi + 0x18]
mov rdx, r15
mov r15, qword [rbp - 0x10]
mov rcx, r15
call fcn.1400330d0
movsxd rax, dword [r15 + 0x28]
lea rcx, [rax + rax*4]
mov rax, qword [r15 + 0x30]
cmp byte [rbx + rdi + 0x14], 0
je 0x14003cb1b
mov byte [rsp + 0x60], 1
or dword [rax + rcx*8 - 0x28], 1
movsxd rcx, dword [rbx + rdi]
mov r11, qword [rbp - 0x80]
movsxd r15, dword [r11 + 0x30]
mov r10, qword [rbx + rdi + 0x20]
mov r8, qword [r11 + 0x20]
movsxd rdx, r14d
imul rdx, r15
movsxd rax, esi
add rdx, rax
test r8, r8
je 0x14003cb9b
lea r11, [r8 + rdx]
xor eax, eax
mov esi, eax
cmp dword [rbx + rdi + 4], eax
jle 0x14003cbf5
lea r14, [rcx*4]
nop dword [rax]
mov r9d, eax
test ecx, ecx
jle 0x14003cb8b
mov rdx, r11
lea r8, [r10 + 3]
nop
movzx eax, byte [r8]
mov byte [rdx], al
inc r9d
lea r8, [r8 + 4]
lea rdx, [rdx + 1]
mov ecx, dword [rbx + rdi]
cmp r9d, ecx
jl 0x14003cb70
xor eax, eax
inc esi
add r11, r15
add r10, r14
cmp esi, dword [rbx + rdi + 4]
jl 0x14003cb60
jmp 0x14003cbf5
mov rax, qword [r11 + 0x28]
lea r11, [rax + rdx*4]
xor eax, eax
mov esi, eax
cmp dword [rbx + rdi + 4], eax
jle 0x14003cbf5
lea r15, [r15*4]
lea r14, [rcx*4]
nop dword [rax]
mov r8d, eax
test ecx, ecx
jle 0x14003cbe7
mov rdx, r11
mov r9, r10
sub r9, r11
mov eax, dword [r9 + rdx]
mov dword [rdx], eax
inc r8d
lea rdx, [rdx + 4]
mov ecx, dword [rbx + rdi]
cmp r8d, ecx
jl 0x14003cbd0
xor eax, eax
inc esi
add r11, r15
add r10, r14
cmp esi, dword [rbx + rdi + 4]
jl 0x14003cbc0
mov edx, dword [rsp + 0x64]
mov r15, qword [rbp - 0x50]
mov ecx, dword [rsp + 0x6c]
inc ecx
mov dword [rsp + 0x6c], ecx
add rbx, 0x28
add r12, 0x18
cmp ecx, dword [r13 + 0x40]
jl 0x14003ca00
mov rdi, qword [rbp - 0x70]
mov rsi, qword [rbp - 0x68]
mov r12, qword [rbp - 0x80]
mov qword [r13 + 0x28], rax
add r13, 0x70
add rdi, 0x90
mov qword [rbp - 0x70], rdi
sub rsi, 1
mov qword [rbp - 0x68], rsi
jne 0x14003c970
movzx eax, byte [rsp + 0x60]
mov r14, qword [rbp - 0x38]
mov r13d, dword [rsp + 0x70]
xor r15d, r15d
mov byte [r12 + 0x1a], al
mov ecx, dword [rsp + 0x74]
mov rsi, qword [rbp - 0x58]
test ecx, ecx
jle 0x14003cc82
mov rbx, rsi
mov edi, ecx
nop dword [rax]
mov rcx, qword [rbx]
call fcn.140023330
lea rbx, [rbx + 8]
sub rdi, 1
jne 0x14003cc70
test r13d, r13d
jle 0x14003cccb
mov rbx, qword [rsp + 0x78]
add rbx, 0x18
mov edi, r13d
mov rcx, qword [rbx + 0x50]
test rcx, rcx
je 0x14003cca2
call fcn.140023330
nop
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x14003ccb1
call fcn.140023330
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x14003ccc1
call fcn.1400cc3a0
mov qword [rbx], r15
add rbx, 0x70
sub rdi, 1
jne 0x14003cc93
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x14003ccee
mov qword [rbp - 0x20], 0
mov rcx, rdi
call fcn.140023330
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x18], r15
mov rcx, r12
call fcn.140035ee0
mov bl, 1
test r14, r14
je 0x14003cd06
mov rcx, r14
call fcn.140023330
nop
test rsi, rsi
je 0x14003cd14
mov rcx, rsi
call fcn.140023330
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x14003cd23
call fcn.140023330
nop
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x14003cd35
mov rcx, rax
call fcn.140023330
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14003cd48
mov rcx, rax
call fcn.140023330
nop
movzx eax, bl
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1401358a0
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret