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

Disassembly:
push rbx
push rsi
push rdi
push r12
sub rsp, 0xe8
mov rax, qword [rcx]
lea r11, [rcx + 0x38]
mov rdi, qword [rcx + 0x30]
mov r9, rcx
mov qword [rsp + 0x60], rax
xor r12d, r12d
movsxd rax, dword [rcx + 0x2c]
mov ebx, r12d
movsxd r10, edx
imul r8, r10, 0x898
lea rsi, [rdi + rax*8]
mov dword [rsp + 0x3c], ebx
mov rax, qword [rcx + 0x1170]
add r11, r8
mov qword [rsp + 0x50], r11
mov r8d, r12d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], rdi
mov ecx, dword [rax + 0x38]
mov eax, 0x24924925
mul ecx
xor eax, eax
mov qword [rsp + 0x68], rsi
sub ecx, edx
mov qword [rsp + 0x70], rax
shr ecx, 1
add ecx, edx
mov qword [rsp + 0xa0], rax
shr ecx, 3
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0x70], al
mov eax, dword [r11 + 0x20]
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0xa0], 0x7d00
test eax, eax
jns 0x1403053d9
neg eax
mov dword [r11], r12d
mov rcx, qword [r9 + 0x20]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x38], eax
movsxd rax, dword [r9 + 0x1c]
lea rdx, [rax + rax*2]
shl rdx, 4
add rdx, rcx
test r10d, r10d
jne 0x14030541a
cmp rcx, rdx
jae 0x140305437
movsx eax, word [rcx + 0xc]
mov dword [rcx + 0x18], eax
movsx eax, word [rcx + 0xe]
mov dword [rcx + 0x1c], eax
add rcx, 0x30
cmp rcx, rdx
jb 0x140305401
jmp 0x140305437
cmp rcx, rdx
jae 0x140305437
nop
movsx eax, word [rcx + 0xe]
mov dword [rcx + 0x18], eax
movsx eax, word [rcx + 0xc]
mov dword [rcx + 0x1c], eax
add rcx, 0x30
cmp rcx, rdx
jb 0x140305420
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xc8], r15
cmp rdi, rsi
jae 0x140305963
mov rbx, qword [rdi]
mov r10d, 0x7d00
mov r9d, 0xffff8300
mov word [rsp + 0x110], r12w
xor ecx, ecx
mov dword [rsp + 0x20], r10d
mov word [rsp + 0x120], cx
mov edx, r12d
mov rax, qword [rbx + 0x28]
movzx r15d, r12w
mov word [rsp + 0x128], cx
mov rdi, r12
mov r14d, r10d
mov dword [rsp + 0x24], r9d
mov r11d, r9d
mov dword [rsp + 0x30], r10d
movzx ecx, byte [rax + 3]
mov ebp, r10d
mov dword [rsp + 0x34], r9d
mov esi, r9d
movsx eax, cl
mov r12d, r10d
mov r13d, r9d
test cl, cl
jns 0x1403054cb
neg eax
mov ecx, dword [rsp + 0x28]
cmp eax, ecx
jne 0x140305512
movzx eax, byte [rbx + 3]
test al, al
movsx eax, al
jns 0x1403054e0
neg eax
cmp eax, ecx
jne 0x140305512
mov rcx, rbx
nop word [rax + rax]
mov rbx, qword [rbx + 0x28]
movzx eax, byte [rbx + 3]
test al, al
movsx eax, al
jns 0x140305501
neg eax
cmp eax, dword [rsp + 0x28]
jne 0x14030550e
cmp rbx, rcx
jne 0x1403054f0
jmp 0x140305512
mov rbx, qword [rbx + 0x20]
xor al, al
mov qword [rsp + 0x40], rbx
mov byte [rsp + 0x118], al
mov rcx, rbx
test edx, edx
je 0x14030580b
mov eax, dword [rbx + 0x18]
cmp eax, r10d
cmovl r10d, eax
cmp eax, r9d
cmovg r9d, eax
mov eax, dword [rbx + 0x1c]
cmp eax, r14d
jge 0x140305557
movzx ecx, word [rbx]
mov r14d, eax
mov word [rsp + 0x110], cx
mov rcx, qword [rsp + 0x40]
cmp eax, r11d
jle 0x140305563
movzx r15d, word [rbx]
mov r11d, eax
test byte [rbx], 3
jne 0x140305572
cmp eax, ebp
cmovl ebp, eax
cmp eax, esi
cmovg esi, eax
movsx eax, byte [rbx + 3]
cmp eax, dword [rsp + 0x38]
jne 0x140305585
cmp rbx, rcx
jne 0x140305820
test rdi, rdi
je 0x140305772
mov rcx, qword [rdi + 0x40]
cmp qword [r8 + 0x38], rcx
jne 0x140305772
movzx eax, byte [rbx + 2]
cmp byte [rcx + 2], al
jne 0x14030565c
mov eax, dword [rsp + 0x20]
cmp r12d, r10d
cmovl r10d, r12d
cmp r13d, r9d
cmovg r9d, r13d
cmp eax, r14d
jge 0x1403055d5
movzx ecx, word [rsp + 0x120]
mov r14d, eax
mov word [rsp + 0x110], cx
jmp 0x1403055dd
movzx ecx, word [rsp + 0x110]
mov eax, dword [rsp + 0x24]
cmp eax, r11d
jle 0x1403055f2
movzx r15d, word [rsp + 0x128]
mov r11d, eax
cmp dword [rsp + 0x30], ebp
lea eax, [r9 + r10]
mov qword [rdi + 0x40], rbx
cmovl ebp, dword [rsp + 0x30]
cmp dword [rsp + 0x34], esi
cmovg esi, dword [rsp + 0x34]
sar eax, 1
mov word [rdi + 2], ax
mov eax, r9d
sub eax, r10d
sar eax, 1
mov word [rdi + 4], ax
movzx eax, r15b
or al, cl
test al, 3
je 0x140305637
mov eax, esi
sub eax, ebp
cmp eax, dword [rsp + 0x2c]
jge 0x140305637
or byte [rdi], 1
jmp 0x14030563a
and byte [rdi], 0xfe
movzx eax, r11w
mov word [rdi + 6], r14w
sub ax, r14w
mov word [rdi + 8], r11w
mov word [rdi + 0xa], ax
mov rax, qword [rsp + 0x50]
dec dword [rax]
jmp 0x1403057f2
mov eax, dword [rsp + 0x24]
sub eax, dword [rsp + 0x20]
cdq
mov ecx, eax
mov eax, r11d
sub eax, r14d
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x1403056ae
cmp r10d, r12d
mov qword [rdi + 0x40], rbx
cmovl r12d, r10d
cmp r9d, r13d
cmovg r13d, r9d
lea eax, [r12 + r13]
sar eax, 1
mov word [rdi + 2], ax
mov eax, r13d
sub eax, r12d
sar eax, 1
mov word [rdi + 4], ax
mov rax, qword [rsp + 0x50]
dec dword [rax]
jmp 0x1403057f2
movzx ecx, word [rsp + 0x110]
cmp r12d, r10d
mov qword [r8 + 0x40], rbx
cmovl r10d, r12d
cmp r13d, r9d
cmovg r9d, r13d
lea eax, [r9 + r10]
sar eax, 1
mov word [r8 + 2], ax
mov eax, r9d
sub eax, r10d
sar eax, 1
mov word [r8 + 4], ax
movzx eax, r15b
or al, cl
test al, 3
je 0x1403056f8
mov eax, esi
sub eax, ebp
cmp eax, dword [rsp + 0x2c]
jge 0x1403056f8
or byte [r8], 1
mov word [r8 + 6], r14w
movzx eax, r11w
mov word [r8 + 8], r11w
mov r12d, r10d
sub ax, word [r8 + 6]
mov r13d, r9d
mov word [r8 + 0xa], ax
movups xmm0, xmmword [r8]
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x20], r14d
movups xmmword [rdi], xmm0
mov dword [rsp + 0x24], r11d
movups xmm1, xmmword [r8 + 0x10]
mov word [rsp + 0x120], cx
mov word [rsp + 0x128], r15w
movups xmmword [rdi + 0x10], xmm1
mov dword [rsp + 0x30], ebp
movups xmm0, xmmword [r8 + 0x20]
mov dword [rsp + 0x34], esi
movups xmmword [rdi + 0x20], xmm0
movups xmm1, xmmword [r8 + 0x30]
movups xmmword [rdi + 0x30], xmm1
movsd xmm0, qword [r8 + 0x40]
movsd qword [rdi + 0x40], xmm0
dec dword [rax]
jmp 0x1403057f2
movzx ecx, word [rsp + 0x110]
lea eax, [r9 + r10]
sar eax, 1
mov qword [r8 + 0x40], rbx
mov word [r8 + 2], ax
mov eax, r9d
sub eax, r10d
sar eax, 1
mov word [r8 + 4], ax
movzx eax, r15b
or al, cl
test al, 3
je 0x1403057ae
mov eax, esi
sub eax, ebp
cmp eax, dword [rsp + 0x2c]
jge 0x1403057ae
or byte [r8], 1
mov word [r8 + 6], r14w
movzx eax, r11w
mov word [r8 + 8], r11w
mov rdi, r8
sub ax, word [r8 + 6]
mov r12d, r10d
mov word [r8 + 0xa], ax
mov r13d, r9d
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x24], r11d
mov word [rsp + 0x120], cx
mov word [rsp + 0x128], r15w
mov dword [rsp + 0x30], ebp
mov dword [rsp + 0x34], esi
mov rcx, qword [rsp + 0x40]
xor eax, eax
mov edx, eax
mov qword [rsp + 0x48], rax
mov r8d, eax
movzx eax, byte [rsp + 0x118]
cmp rbx, rcx
jne 0x140305820
test al, al
jne 0x14030593b
mov byte [rsp + 0x118], 1
test edx, edx
jne 0x14030592a
movzx eax, byte [rbx + 3]
movsx ecx, al
test al, al
mov eax, ecx
jns 0x140305837
neg eax
cmp eax, dword [rsp + 0x28]
je 0x140305847
cmp rbx, qword [rbx + 0x28]
jne 0x140305925
mov rdx, qword [rsp + 0x60]
lea r8, [rsp + 0x48]
mov esi, ecx
mov dword [rsp + 0x38], ecx
mov rcx, qword [rsp + 0x50]
call fcn.140300e40
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x140305a10
mov r8, qword [rsp + 0x48]
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [r8], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r8 + 0x10], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [r8 + 0x20], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [r8 + 0x30], xmm0
mov byte [r8 + 1], sil
mov qword [r8 + 0x38], rbx
mov qword [r8 + 0x40], rbx
test rdi, rdi
je 0x1403058b7
lea rdi, [r8 - 0x48]
movzx r15d, word [rbx]
mov r9d, dword [rbx + 0x18]
mov r10d, r9d
mov r11d, dword [rbx + 0x1c]
mov r14d, r11d
mov word [rsp + 0x110], r15w
test r15b, 3
je 0x1403058e4
mov ebp, 0x7d00
mov esi, 0xffff8300
jmp 0x1403058ea
mov esi, r11d
mov ebp, r11d
mov edx, 1
cmp rbx, qword [rbx + 0x28]
jne 0x140305925
mov word [r8 + 2], r9w
test byte [rbx], 3
je 0x140305902
or byte [r8], dl
movzx eax, word [rbx + 0x1c]
mov word [r8 + 6], ax
movzx eax, word [rbx + 0x1c]
mov word [r8 + 8], ax
xor eax, eax
mov word [r8 + 0xa], ax
mov edx, eax
mov r8d, eax
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rbx + 0x20]
movzx eax, byte [rsp + 0x118]
jmp 0x140305523
mov rdi, qword [rsp + 0x58]
mov r12d, 0
add rdi, 8
mov qword [rsp + 0x58], rdi
cmp rdi, qword [rsp + 0x68]
jb 0x140305460
mov r11, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x3c]
mov r8, qword [r11 + 8]
movsxd rax, dword [r11]
lea rcx, [rax + rax*8]
lea rdx, [r8 + rcx*8]
cmp r8, rdx
jae 0x140305a0e
sub rdx, r8
lea rcx, [r8 + 0xa]
dec rdx
movabs rax, 0xe38e38e38e38e38f
mul rdx
mov r11, rdx
shr r11, 6
inc r11
nop dword [rax]
mov rax, qword [rcx + 0x2e]
mov r10, qword [rcx + 0x36]
mov r9d, dword [rax + 0x1c]
mov rax, qword [rax + 0x28]
mov r8d, dword [r10 + 0x1c]
mov edx, dword [rax + 0x1c]
cmp r9d, r8d
jge 0x1403059e1
cmp edx, r9d
jge 0x1403059cb
sub r9d, edx
sar r9d, 1
add word [rcx], r9w
mov rax, qword [r10 + 0x20]
mov edx, dword [rax + 0x1c]
cmp edx, r8d
jle 0x140305a04
sub edx, r8d
sar edx, 1
add word [rcx], dx
jmp 0x140305a04
cmp edx, r9d
jle 0x1403059ee
sub edx, r9d
sar edx, 1
add word [rcx], dx
mov rax, qword [r10 + 0x20]
mov edx, dword [rax + 0x1c]
cmp edx, r8d
jge 0x140305a04
sub r8d, edx
sar r8d, 1
add word [rcx], r8w
add rcx, 0x48
sub r11, 1
jne 0x1403059a0
mov eax, ebx
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
pop r12
pop rdi
pop rsi
pop rbx
ret