Function at 0x1403cd650
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
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
mov rax, qword [rcx]
mov edi, dword [rcx + 0x10]
movzx ebp, byte [rax + 0x26]
mov qword [rsp + 0x30], rax
lea eax, [rdi - 1]
mov r14, rcx
mov dword [rsp + 0x3c], edi
lea rdi, [rax + rax*2 + 3]
shl rdi, 3
mov r15, rdi
movzx eax, byte [r14 + 9]
lea r12, [r14 + 0x40]
test al, al
jne 0x1403cd6be
mov edx, dword [r14 + 0x24]
test edx, edx
je 0x1403cddfd
mov r12, qword [r14 + 0x30]
test r12, r12
je 0x1403cddfd
movzx edx, byte [r12 + 0x10]
test dl, dl
je 0x1403cde02
mov edx, 1
sub edx, eax
movsxd rbx, edx
mov rcx, qword [r14 + rbx*8 + 0x58]
test rcx, rcx
je 0x1403cdd60
mov rsi, qword [rcx + 0x18]
pxor xmm7, xmm7
movzx eax, byte [rsi + 2]
shl eax, 8
mov edx, eax
movzx eax, byte [rsi + 3]
lea edi, [rdx + rax]
mov rax, qword [rsp + 0x30]
movzx edx, byte [r12 + 0x12]
mov dword [rsp + 0x38], edi
movzx eax, byte [rax + 0x27]
imul eax, edx
add eax, 4
cdqe
add rsi, rax
cmp edx, edi
jge 0x1403cd962
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
jle 0x1403cd9df
movsd xmm6, qword [0x14076c2d0]
xor ebx, ebx
mov r13d, 2
lea rdi, [rsp + 0x50]
jmp 0x1403cd786
cmp byte [r12 + 0x10], 1
mov ecx, dword [rdx]
je 0x1403cd9f8
and ecx, 0xfe
lea r8, [rsi + rcx*4 + 8]
cmp eax, 0x40
je case.0x1403cda2f.64
jg 0x1403cd970
cmp eax, 0x3f
jne 0x1403cdcb0
add rbx, 0x18
cmp r15, rbx
je 0x1403cd900
mov rdx, qword [r14 + 0x18]
add rdx, rbx
mov eax, dword [rdx + 4]
cmp eax, 0x45
jle 0x1403cd748
mov rcx, qword [rdx + 0x10]
mov r11d, dword [rcx + 0x38]
cmp eax, 0x47
je 0x1403cdcf8
cmp bpl, 1
je 0x1403cdab0
cmp r11d, 8
je 0x1403cdc6c
jg 0x1403cdc28
cmp r11d, 4
je 0x1403cd800
cmp r11d, 6
jne 0x1403cd834
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
mov r10, qword [rdx + 8]
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x50], xmm0
cmp eax, 0x46
je 0x1403cdb5d
mov qword [rcx + 0x28], rdi
movzx eax, byte [r12 + 0x10]
movsd xmm0, qword [r12]
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 [r12 + 0x11]
mov dword [rcx + 0x58], eax
mov dword [rcx + 0x5c], eax
call r10
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 0x1403cd8d8
movapd xmm1, xmm6
cmpltsd xmm1, xmm7
andpd xmm0, xmm1
andnpd xmm1, xmm6
orpd xmm0, xmm1
test eax, eax
jne 0x1403cdb89
test r13d, r13d
je case.0x1403cda2f.64
add rbx, 0x18
movapd xmm6, xmm0
cmp r15, rbx
jne 0x1403cd786
nop word [rax + rax]
movzx ebx, byte [r12 + 0x12]
movzx edi, byte [r12 + 0x10]
lea edx, [rbx + 1]
mov byte [r12 + 0x12], dl
sub dil, 1
jne 0x1403cddad
mov rsi, qword [r12 + 8]
movzx edx, dl
cmp edx, dword [rsp + 0x38]
jge 0x1403cdda0
pxor xmm1, xmm1
movzx r8d, dil
mov rcx, r14
maxsd xmm1, xmm6
call fcn.1403c5110
test rax, rax
je 0x1403cde14
mov byte [rax + 0x11], r13b
mov qword [rax + 8], rsi
mov byte [rax + 0x12], bl
cmp ebx, dword [rsp + 0x38]
jl 0x1403cd698
mov rcx, r14
call fcn.1403c4f50
jmp 0x1403cd698
lea ecx, [rax - 0x41]
cmp ecx, 2
ja 0x1403cdcb0
mov ecx, dword [r8]
bswap ecx
cmp bpl, 1
jne 0x1403cdd48
pxor xmm0, xmm0
cvtsi2sd xmm0, ecx
movsd xmm1, qword [rdx + 8]
comisd xmm1, xmm0
jae case.0x1403cda2f.63
cmp eax, 0x41
je 0x1403cdcb5
nop dword [rax + rax]
movzx eax, byte [r12 + 0x12]
mov rdi, qword [rsp + 0x30]
add eax, 1
mov byte [r12 + 0x12], al
movzx edx, byte [rdi + 0x27]
movzx eax, al
add rsi, rdx
cmp eax, dword [rsp + 0x38]
jge 0x1403cd962
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
jg 0x1403cd72e
movsd xmm6, qword [0x14076c2d0]
mov r13d, 2
jmp 0x1403cd900
lea ecx, [rcx*4 + 8]
movsxd rcx, ecx
mov ecx, dword [rsi + rcx]
bswap ecx
cmp bpl, 1
jne 0x1403cdce0
pxor xmm0, xmm0
cvtsi2sd xmm0, ecx
sub eax, 0x3f
cmp eax, 6
ja case.0x1403cda2f.65
lea rcx, [0x140763020]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
comisd xmm0, xmmword [rdx + 8]
jbe case.0x1403cda2f.64
jmp case.0x1403cda2f.63
comisd xmm0, xmmword [rdx + 8]
jb case.0x1403cda2f.64
jmp case.0x1403cda2f.63
movsd xmm1, qword [rdx + 8]
comisd xmm1, xmm0
jbe case.0x1403cda2f.64
jmp case.0x1403cda2f.63
movsd xmm1, qword [rdx + 8]
comisd xmm1, xmm0
jb case.0x1403cda2f.64
jmp case.0x1403cda2f.63
ucomisd xmm0, qword [rdx + 8]
jp case.0x1403cda2f.64
je case.0x1403cda2f.63
jmp case.0x1403cda2f.64
cmp r11d, 8
je 0x1403cdbec
jg 0x1403cdbb0
cmp r11d, 4
je 0x1403cdaf8
cmp r11d, 6
jne 0x1403cdb24
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
mov r10, qword [rdx + 8]
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x50], xmm0
cmp eax, 0x46
jne 0x1403cd875
mov r8, rdi
mov dword [rsp + 0x4c], 0
lea r9, [rsp + 0x4c]
mov edx, r11d
call r10
mov r8d, dword [rsp + 0x4c]
test r8d, r8d
jne 0x1403cdd30
test eax, eax
je case.0x1403cda2f.64
movaps xmm6, xmmword [rsp + 0xa0]
movaps 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 r11d, 0xa
jne 0x1403cdb24
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 0x1403cdacc
cmp r11d, 0xa
jne 0x1403cd834
mov r8d, dword [rsi + 0x2c]
pxor xmm0, xmm0
bswap r8d
movd xmm2, r8d
mov r8d, dword [rsi + 0x28]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x98], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm2, r8d
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x90], xmm0
mov r8d, dword [rsi + 0x24]
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
mov r8d, dword [rsi + 0x20]
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x88], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x80], xmm0
jmp 0x1403cd7cc
movsd xmm1, qword [rdx + 8]
mov eax, dword [r8 + 4]
bswap eax
cmp bpl, 1
jne 0x1403cdd18
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
comisd xmm0, xmm1
jb case.0x1403cda2f.64
jmp case.0x1403cda2f.63
movd xmm4, ecx
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp 0x1403cda19
cmp byte [r12 + 0x10], 1
jne 0x1403cd7a6
mov r8, qword [rsi]
bswap r8
mov qword [rcx + 0x48], r8
jmp 0x1403cd7a6
movd xmm3, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm3
jmp 0x1403cdcc9
test eax, eax
jne 0x1403cdb89
pxor xmm6, xmm6
jmp case.0x1403cda2f.63
movd xmm4, ecx
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp 0x1403cd993
test edx, edx
jne 0x1403cddf0
mov r13, qword [r14 + 0x48]
mov edx, 0xc
mov rcx, qword [r14]
xor r8d, r8d
sub edx, eax
movsxd rax, edx
mov rdx, r13
lea r9, [r14 + rax*8]
call fcn.1403caa50
mov rcx, qword [r14 + rbx*8 + 0x58]
test eax, eax
je 0x1403cd6e4
jmp 0x1403cdb89
mov rcx, r14
call fcn.1403c4f50
jmp 0x1403cd930
mov rsi, qword [rsi]
mov r8d, dword [r14 + 0x24]
bswap rsi
test r8d, r8d
jle 0x1403cde0d
mov rcx, qword [r14 + 0x30]
sub r8d, 1
lea r8, [r8 + r8*2]
lea rax, [rcx + 8]
lea rcx, [rcx + r8*8 + 0x20]
jmp 0x1403cdde1
add rax, 0x18
cmp rcx, rax
je 0x1403cde0d
cmp qword [rax], rsi
jne 0x1403cddd8
mov eax, 0x10b
jmp 0x1403cdb89
mov rdx, qword [r14 + 0x30]
mov r13, qword [rdx + 8]
jmp 0x1403cdd6c
mov edx, 1
mov byte [r14 + 8], dl
xor eax, eax
jmp 0x1403cdb89
xor ebx, ebx
jmp 0x1403cd923
mov eax, 7
jmp 0x1403cdb89