Function at 0x140200790
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 r14, qword [rcx]
mov bpl, byte [r14 + 0x26]
mov rsi, rcx
xor ecx, ecx
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x34], eax
mov rcx, rsi
call fcn.140200460
mov r15, rax
test rax, rax
je 0x140200d22
cmp byte [rax + 0x10], 0
je 0x140200d22
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.1402001b0
mov rdx, rax
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x140200d50
mov rbx, qword [rdx + 0x18]
movzx eax, byte [r14 + 0x27]
movzx edx, byte [r15 + 0x12]
mov di, word [rbx + 2]
imul eax, edx
rol di, 8
movzx edi, di
add eax, 4
cdqe
add rbx, rax
movzx eax, byte [r15 + 0x12]
cmp eax, edi
jge 0x140200d15
mov rax, qword [0x1403556e8]
xor r13d, r13d
mov r12d, 2
xorps xmm7, xmm7
movq xmm6, rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x34], r13d
jle 0x140200c9c
imul rax, r13, 0x18
add rax, qword [rsi + 0x18]
mov edx, dword [rax + 4]
cmp edx, 0x45
jle 0x140200b45
mov rcx, qword [rax + 0x10]
mov r11d, dword [rcx + 0x38]
cmp edx, 0x47
jne 0x140200894
cmp byte [r15 + 0x10], 1
jne 0x140200894
mov r8, qword [rbx]
bswap r8
mov qword [rcx + 0x48], r8
cmp bpl, 1
mov r8d, dword [rbx + 0xc]
je 0x1402009ac
cmp r11d, 8
je 0x1402008fb
jg 0x1402008bf
cmp r11d, 4
je 0x140200959
cmp r11d, 6
je 0x14020092d
jmp 0x140200985
cmp r11d, 0xa
jne 0x140200985
mov r9d, dword [rbx + 0x2c]
bswap r9d
movd xmm2, r9d
mov r9d, dword [rbx + 0x28]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x98], xmm0
bswap r9d
movd xmm3, r9d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
movd xmm4, r9d
mov r9d, dword [rbx + 0x20]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x88], xmm0
bswap r9d
movd xmm5, r9d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
movd xmm2, r9d
mov r9d, dword [rbx + 0x18]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x78], xmm0
bswap r9d
movd xmm3, r9d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
movd xmm4, r9d
mov r9d, dword [rbx + 0x10]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x68], xmm0
bswap r9d
movd xmm5, r9d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
bswap r8d
movd xmm2, r8d
mov r8d, dword [rbx + 8]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x58], xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
jmp 0x140200a89
cmp r11d, 8
je 0x1402009fd
jg 0x1402009c9
cmp r11d, 4
je 0x140200a4b
cmp r11d, 6
je 0x140200a27
jmp 0x140200a6f
cmp r11d, 0xa
jne 0x140200a6f
mov r9d, dword [rbx + 0x2c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x28]
bswap r9d
movsd qword [rsp + 0x98], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x20]
bswap r9d
movsd qword [rsp + 0x88], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x18]
bswap r9d
movsd qword [rsp + 0x78], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x10]
bswap r9d
movsd qword [rsp + 0x68], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x60], xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rbx + 8]
bswap r8d
movsd qword [rsp + 0x58], xmm0
cvtsi2sd xmm0, r8d
mov rax, qword [rax + 8]
movsd qword [rsp + 0x50], xmm0
cmp edx, 0x46
jne 0x140200ad5
xor edx, edx
mov r8, qword [rsp + 0x28]
lea r9, [rsp + 0x4c]
mov dword [rsp + 0x4c], edx
mov edx, r11d
call rax
cmp dword [rsp + 0x4c], 0
mov dword [rsp + 0x48], eax
jne 0x140200ac5
test eax, eax
je case.0x140200b87.64
jmp 0x140200d50
test eax, eax
jne 0x140200d50
xorps xmm6, xmm6
jmp case.0x140200b87.63
mov rdx, qword [rsp + 0x28]
movsd xmm0, qword [r15]
mov qword [rsp + 0x38], rcx
mov qword [rcx + 0x28], rdx
movzx edx, byte [r15 + 0x10]
movsd qword [rcx + 0x50], xmm0
dec edx
movsd qword [rcx + 0x60], xmm0
mov dword [rcx + 0x3c], edx
movzx edx, byte [r15 + 0x11]
mov dword [rcx + 0x58], edx
mov dword [rcx + 0x5c], edx
call rax
mov rcx, qword [rsp + 0x38]
mov edx, dword [rcx + 0x5c]
movsd xmm0, qword [rcx + 0x60]
cmp r12d, edx
cmovg r12d, edx
comisd xmm6, xmm0
ja 0x140200b34
movaps xmm1, xmm6
cmpltsd xmm1, xmm7
andps xmm0, xmm1
andnps xmm1, xmm6
orps xmm0, xmm1
mov dword [rsp + 0x48], eax
test eax, eax
je 0x140200c7c
jmp 0x140200d50
cmp byte [r15 + 0x10], 1
mov ecx, dword [rax]
jne 0x140200b94
lea ecx, [rcx*4 + 8]
movsxd rcx, ecx
mov ecx, dword [rbx + rcx]
bswap ecx
cmp bpl, 1
jne 0x140200b69
cvtsi2sd xmm0, ecx
jmp 0x140200b71
movd xmm4, ecx
cvtss2sd xmm0, xmm4
sub edx, 0x3f
cmp edx, 6
ja case.0x140200b87.65
lea rcx, [0x1403510d0]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jmp 0x140200bda
and ecx, 0xfe
lea rcx, [rbx + rcx*4 + 8]
cmp edx, 0x41
je 0x140200c05
jg 0x140200bfb
cmp edx, 0x3f
je case.0x140200b87.63
cmp edx, 0x40
je case.0x140200b87.64
mov edx, dword [rcx + 4]
bswap edx
cmp bpl, 1
jne 0x140200c6f
cvtsi2sd xmm0, edx
comisd xmm0, xmmword [rax + 8]
jmp 0x140200c6b
comisd xmm0, xmmword [rax + 8]
jbe case.0x140200b87.64
jmp case.0x140200b87.63
ucomisd xmm0, qword [rax + 8]
jp case.0x140200b87.64
jne case.0x140200b87.64
jmp case.0x140200b87.63
sub edx, 0x42
cmp edx, 1
jbe 0x140200c4a
jmp 0x140200bb8
mov edx, dword [rcx]
movsd xmm1, qword [rax + 8]
bswap edx
cmp bpl, 1
jne 0x140200c29
cvtsi2sd xmm0, edx
comisd xmm1, xmm0
jb case.0x140200b87.64
mov eax, dword [rcx + 4]
bswap eax
cvtsi2sd xmm0, eax
jmp 0x140200c44
movd xmm5, edx
cvtss2sd xmm0, xmm5
comisd xmm1, xmm0
jb case.0x140200b87.64
mov eax, dword [rcx + 4]
bswap eax
movd xmm2, eax
cvtss2sd xmm0, xmm2
comisd xmm0, xmm1
jmp 0x140200c6b
mov edx, dword [rcx]
bswap edx
cmp bpl, 1
jne 0x140200c5a
cvtsi2sd xmm0, edx
jmp case.0x140200b87.66
movd xmm3, edx
cvtss2sd xmm0, xmm3
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jb case.0x140200b87.64
jmp case.0x140200b87.63
movd xmm4, edx
cvtss2sd xmm0, xmm4
jmp case.0x140200b87.68
test r12d, r12d
je case.0x140200b87.64
movaps xmm6, xmm0
jmp case.0x140200b87.63
inc byte [r15 + 0x12]
movzx eax, byte [r14 + 0x27]
jmp 0x140200825
inc r13
jmp 0x140200857
mov r13b, byte [r15 + 0x12]
mov cl, byte [r15 + 0x10]
lea eax, [r13 + 1]
dec cl
mov byte [r15 + 0x12], al
mov byte [rsp + 0x28], cl
je 0x140200d45
mov rbx, qword [rbx]
mov r8d, dword [rsi + 0x24]
xor edx, edx
bswap rbx
cmp r8d, edx
jg 0x140200d2d
xor r13d, r13d
movzx eax, al
cmp eax, edi
jl 0x140200cdb
mov rcx, rsi
call fcn.140200560
xorps xmm0, xmm0
comisd xmm0, xmm6
jbe 0x140200ce7
movaps xmm6, xmm0
movzx r8d, byte [rsp + 0x28]
movaps xmm1, xmm6
mov rcx, rsi
call fcn.140200480
test rax, rax
je 0x140200d4b
movzx edx, r13b
mov byte [rax + 0x11], r12b
mov qword [rax + 8], rbx
mov byte [rax + 0x12], r13b
cmp edx, edi
jl 0x1402007ca
mov rcx, rsi
call fcn.140200560
jmp 0x1402007ca
test r15, r15
sete byte [rsi + 8]
xor eax, eax
jmp 0x140200d50
imul rcx, rdx, 0x18
add rcx, qword [rsi + 0x30]
inc rdx
cmp qword [rcx + 8], rbx
jne 0x140200cc4
mov eax, 0x10b
jmp 0x140200d50
mov rbx, qword [r15 + 8]
jmp 0x140200ccc
mov eax, 7
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