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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
movups xmmword [rsp + 0xa0], xmm6
movups xmmword [rsp + 0xb0], xmm7
mov rax, qword [rcx]
mov edi, dword [rcx + 0x10]
movzx r12d, byte [rax + 0x26]
mov qword [rsp + 0x30], rax
lea eax, [rdi - 1]
mov r14, rcx
mov dword [rsp + 0x48], 0
lea rbp, [rax + rax*2 + 3]
mov dword [rsp + 0x3c], edi
shl rbp, 3
cmp byte [r14 + 9], 0
lea rdi, [r14 + 0x40]
jne 0x7eceb2
mov eax, dword [r14 + 0x24]
test eax, eax
je 0x7ed608
mov rdi, qword [r14 + 0x30]
test rdi, rdi
je 0x7ed608
movzx eax, byte [rdi + 0x10]
test al, al
je 0x7ed60d
lea rdx, [rsp + 0x48]
mov rcx, r14
call fcn.007ecab0
mov rdx, rax
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x7ed402
mov rsi, qword [rdx + 0x18]
movzx edx, byte [rdi + 0x12]
pxor xmm7, xmm7
movzx r13d, byte [rsi + 2]
movzx eax, byte [rsi + 3]
shl r13d, 8
lea ebx, [r13 + rax]
mov rax, qword [rsp + 0x30]
mov dword [rsp + 0x38], ebx
movzx eax, byte [rax + 0x27]
imul eax, edx
add eax, 4
cdqe
add rsi, rax
cmp edx, ebx
jge 0x7ecfac
mov edx, dword [rsp + 0x3c]
test edx, edx
jle 0x7ed61f
movsd xmm6, qword [0x00b55200]
xor ebx, ebx
mov r13d, 2
lea r15, [rsp + 0x50]
nop dword [rax]
mov r10, qword [r14 + 0x18]
add r10, rbx
mov eax, dword [r10 + 4]
cmp eax, 0x45
jg 0x7ecfc0
cmp byte [rdi + 0x10], 1
mov edx, dword [r10]
je 0x7ed1c0
and edx, 0xfe
lea rdx, [rsi + rdx*4 + 8]
cmp eax, 0x41
je 0x7ed4e0
jg 0x7ed180
cmp eax, 0x3f
je case.0x7ed1fb.63
cmp eax, 0x40
jne 0x7ed200
movzx eax, byte [rdi + 0x12]
mov rbx, qword [rsp + 0x30]
add eax, 1
mov byte [rdi + 0x12], al
movzx edx, byte [rbx + 0x27]
movzx eax, al
add rsi, rdx
cmp eax, dword [rsp + 0x38]
jl 0x7ecf18
mov rcx, r14
call fcn.007e7d60
jmp 0x7ece8e
mov rcx, qword [r10 + 0x10]
mov edx, dword [rcx + 0x38]
cmp eax, 0x47
je 0x7ed4c0
cmp r12b, 1
je 0x7ed330
cmp edx, 8
je 0x7ed2eb
jg 0x7ed2a8
cmp edx, 4
je 0x7ed027
cmp edx, 6
jne 0x7ed05b
mov r8d, dword [rsi + 0x1c]
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
mov r8d, dword [rsi + 0x18]
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x78], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm2, r8d
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [rsi + 0x14]
pxor xmm0, xmm0
bswap r8d
movd xmm4, r8d
mov r8d, dword [rsi + 0x10]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x68], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
mov r8d, dword [rsi + 0xc]
pxor xmm0, xmm0
bswap r8d
movd xmm2, r8d
mov r8d, dword [rsi + 8]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x58], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x50], xmm0
cmp eax, 0x46
je 0x7ed3d6
mov qword [rcx + 0x28], r15
movzx eax, byte [rdi + 0x10]
movsd xmm0, qword [rdi]
mov qword [rsp + 0x28], rcx
sub eax, 1
movsd qword [rcx + 0x50], xmm0
movsd qword [rcx + 0x60], xmm0
mov dword [rcx + 0x3c], eax
movzx eax, byte [rdi + 0x11]
mov dword [rcx + 0x58], eax
mov dword [rcx + 0x5c], eax
call qword [r10 + 8]
mov rcx, qword [rsp + 0x28]
mov edx, dword [rcx + 0x5c]
movsd xmm0, qword [rcx + 0x60]
cmp r13d, edx
cmovg r13d, edx
comisd xmm6, xmm0
ja 0x7ed0f6
movupd xmm1, xmm6
cmpltsd xmm1, xmm7
andpd xmm0, xmm1
andnpd xmm1, xmm6
orpd xmm0, xmm1
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x7ed402
test r13d, r13d
je case.0x7ed1fb.64
movupd xmm6, xmm0
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
movzx ebx, byte [rdi + 0x12]
movzx r15d, byte [rdi + 0x10]
lea edx, [rbx + 1]
mov byte [rdi + 0x12], dl
sub r15b, 1
jne 0x7ed5c5
mov rsi, qword [rdi + 8]
movzx edx, dl
cmp edx, dword [rsp + 0x38]
jge 0x7ed5b8
pxor xmm1, xmm1
movzx r8d, r15b
mov rcx, r14
maxsd xmm1, xmm6
call fcn.007eb040
test rax, rax
je 0x7ed632
mov byte [rax + 0x11], r13b
mov qword [rax + 8], rsi
mov byte [rax + 0x12], bl
cmp ebx, dword [rsp + 0x38]
jl 0x7ece8e
jmp 0x7ecfac
sub eax, 0x42
cmp eax, 1
ja 0x7ed200
mov eax, dword [rdx]
bswap eax
cmp r12b, 1
jne 0x7ed580
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [r10 + 8]
comisd xmm1, xmm0
jb case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
lea edx, [rdx*4 + 8]
movsxd rdx, edx
mov edx, dword [rsi + rdx]
bswap edx
cmp r12b, 1
jne 0x7ed4a8
pxor xmm0, xmm0
cvtsi2sd xmm0, edx
sub eax, 0x3f
cmp eax, 6
ja case.0x7ed1fb.65
lea rcx, [0x00b4b110]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, dword [rdx + 4]
bswap eax
cmp r12b, 1
jne 0x7ed598
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
comisd xmm0, xmmword [r10 + 8]
jb case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
movsd xmm1, qword [r10 + 8]
comisd xmm1, xmm0
jbe case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
comisd xmm0, xmmword [r10 + 8]
jbe case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
ucomisd xmm0, qword [r10 + 8]
jp case.0x7ed1fb.64
jne case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
cmp edx, 0xa
jne 0x7ed05b
mov r8d, dword [rsi + 0x2c]
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
mov r8d, dword [rsi + 0x28]
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x98], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm4, r8d
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x90], xmm0
mov r8d, dword [rsi + 0x24]
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
mov r8d, dword [rsi + 0x20]
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x88], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x80], xmm0
jmp 0x7ecff3
cmp edx, 8
je 0x7ed46b
jg 0x7ed430
cmp edx, 4
je 0x7ed375
cmp edx, 6
jne 0x7ed3a1
mov r8d, dword [rsi + 0x1c]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x18]
bswap r8d
movsd qword [rsp + 0x78], xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [rsi + 0x14]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x10]
bswap r8d
movsd qword [rsp + 0x68], xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x60], xmm0
mov r8d, dword [rsi + 0xc]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 8]
bswap r8d
movsd qword [rsp + 0x58], xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x50], xmm0
cmp eax, 0x46
jne 0x7ed098
mov dword [rsp + 0x4c], 0
lea r9, [rsp + 0x4c]
mov r8, r15
call qword [r10 + 8]
mov ecx, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
test ecx, ecx
jne 0x7ed530
test eax, eax
je case.0x7ed1fb.64
movups xmm6, xmmword [rsp + 0xa0]
movups xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 0xa
jne 0x7ed3a1
mov r8d, dword [rsi + 0x2c]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x28]
bswap r8d
movsd qword [rsp + 0x98], xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x90], xmm0
mov r8d, dword [rsi + 0x24]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x20]
bswap r8d
movsd qword [rsp + 0x88], xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x80], xmm0
jmp 0x7ed349
movd xmm4, edx
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp 0x7ed1e1
cmp byte [rdi + 0x10], 1
jne 0x7ecfd0
mov r8, qword [rsi]
bswap r8
mov qword [rcx + 0x48], r8
jmp 0x7ecfd0
mov eax, dword [rdx]
movsd xmm1, qword [r10 + 8]
bswap eax
cmp r12b, 1
jne 0x7ed550
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
comisd xmm1, xmm0
jb case.0x7ed1fb.64
mov eax, dword [rdx + 4]
pxor xmm0, xmm0
bswap eax
cvtsi2sd xmm0, eax
comisd xmm0, xmm1
jb case.0x7ed1fb.64
add rbx, 0x18
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
test eax, eax
jne 0x7ed402
add rbx, 0x18
pxor xmm6, xmm6
cmp rbp, rbx
jne 0x7ecf40
jmp 0x7ed11c
movd xmm5, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm5
comisd xmm1, xmm0
jb case.0x7ed1fb.64
mov eax, dword [rdx + 4]
pxor xmm0, xmm0
bswap eax
movd xmm3, eax
cvtss2sd xmm0, xmm3
jmp 0x7ed50f
movd xmm4, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp case.0x7ed1fb.66
movd xmm2, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm2
comisd xmm0, xmmword [r10 + 8]
jb case.0x7ed1fb.64
jmp 0x7ed223
mov rcx, r14
call fcn.007e7d60
jmp 0x7ed146
mov rsi, qword [rsi]
mov ecx, dword [r14 + 0x24]
bswap rsi
test ecx, ecx
jle 0x7ed618
mov r8, qword [r14 + 0x30]
sub ecx, 1
lea rcx, [rcx + rcx*2]
lea rax, [r8 + 8]
lea rcx, [r8 + rcx*8 + 0x20]
jmp 0x7ed5f9
add rax, 0x18
cmp rcx, rax
je 0x7ed618
cmp qword [rax], rsi
jne 0x7ed5f0
mov eax, 0x10b
jmp 0x7ed402
mov eax, 1
mov byte [r14 + 8], al
xor eax, eax
jmp 0x7ed402
xor ebx, ebx
jmp 0x7ed139
movsd xmm6, qword [0x00b55200]
mov r13d, 2
jmp 0x7ed11c
mov eax, 7
jmp 0x7ed402