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

Disassembly:
push rbp
push rsi
push r12
push r15
sub rsp, 0x48
movss xmm0, dword [rdx + 0x14]
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm7
movss xmm7, dword [0x1402a88d4]
mov rbp, rdx
mov rsi, rcx
comiss xmm7, xmm0
jbe 0x140022532
movaps xmm6, xmm7
jmp 0x140022542
movss xmm6, dword [0x1402a8910]
comiss xmm0, xmm6
ja 0x140022542
movaps xmm6, xmm0
mov eax, dword [rdx]
mov dword [rcx], eax
mov ecx, dword [rdx + 4]
mov dword [rsi + 4], ecx
mov edx, dword [rdx + 8]
and ecx, 0xfffffffe
movss dword [rsi + 0x14], xmm6
mov dword [rsi + 8], edx
mov eax, dword [rbp + 0x340]
mov dword [rsi + 0x4a8], 0
mov dword [rsi + 0x4ac], 0
mov dword [rsi + 0x4b0], ecx
mov dword [rsi + 0x340], eax
and edx, 0xfffffffe
mov dword [rsi + 0x4b4], edx
movzx eax, word [rbp + 0x37c]
mov word [rsi + 0x37c], ax
movzx eax, byte [rbp + 0x37e]
mov byte [rsi + 0x37e], al
mov eax, dword [rbp + 0x380]
mov dword [rsi + 0x380], eax
mov eax, dword [rbp + 0x384]
mov dword [rsi + 0x384], eax
mov eax, dword [rbp + 0x388]
mov dword [rsi + 0x388], eax
mov eax, dword [rbp + 0x358]
mov dword [rsi + 0x358], eax
movzx eax, byte [rbp + 0x38f]
mov byte [rsi + 0x38f], al
mov eax, dword [rbp + 0x10]
mov dword [rsi + 0x10], eax
movzx eax, byte [rbp + 0x352]
mov byte [rsi + 0x352], al
mov eax, dword [rbp + 0x354]
mov dword [rsi + 0x354], eax
mov eax, dword [rbp + 0xc]
mov dword [rsi + 0xc], eax
mov ecx, dword [rbp + 0x360]
mov dword [rsi + 0x360], ecx
test ecx, ecx
je 0x140022620
cmp ecx, eax
jge 0x140022620
mov dword [rsi + 0x360], eax
mov eax, dword [rbp + 0x364]
mov dword [rsi + 0x364], eax
mov eax, dword [rbp + 0x368]
mov dword [rsi + 0x368], eax
mov eax, dword [rbp + 0x36c]
mov dword [rsi + 0x36c], eax
cmp byte [rbp + 0x38c], 0
setne al
mov byte [rsi + 0x38c], al
movzx eax, byte [rbp + 0x390]
mov byte [rsi + 0x390], al
cmp byte [rbp + 0x38d], 0
setne al
mov byte [rsi + 0x38d], al
cmp byte [rbp + 0x38e], 0
setne al
mov byte [rsi + 0x38e], al
cmp byte [rbp + 0x35c], 0
setne al
mov byte [rsi + 0x35c], al
cmp byte [rbp + 0x370], 0
setne cl
cmp dword [rsi], 1
mov byte [rsi + 0x370], cl
mov eax, dword [rbp + 0x378]
mov dword [rsi + 0x378], eax
movzx eax, byte [rbp + 0x391]
mov byte [rsi + 0x391], al
jne 0x1400226cd
test al, al
jne 0x1400226cd
test cl, cl
je 0x1400226cd
mov byte [rsi + 0x370], al
movzx eax, byte [rbp + 0x351]
mov r8d, 1
mov ecx, 4
mov byte [rsi + 0x351], al
movzx eax, byte [rbp + 0x352]
mov byte [rsi + 0x352], al
mov eax, dword [rbp + 0x1c]
cmp eax, r8d
jge 0x1400226ff
mov eax, r8d
jmp 0x140022704
cmp eax, ecx
cmovg eax, ecx
movsx r9d, al
mov dword [rsi + 0x1c], r9d
mov eax, dword [rbp + 0x18]
cmp eax, r8d
jge 0x140022719
mov eax, r8d
jmp 0x14002271e
cmp eax, ecx
cmovg eax, ecx
movsx ecx, al
mov dword [rsi + 0x18], ecx
movzx eax, byte [rsi + 0x18]
dec ecx
shl r8d, cl
dec al
mov byte [rsi + 0x4c8], al
mov dword [rsi + 0x4a4], r8d
mov ecx, dword [rbp + 0x344]
mov dword [rsi + 0x344], ecx
cmp ecx, 0xffffffff
jne 0x140022759
mov dword [rsi + 0x344], 0
jmp 0x140022775
lea eax, [r8 - 1]
test ecx, eax
je 0x140022775
xor edx, edx
lea eax, [r8 + rcx - 1]
div r8d
imul eax, r8d
mov dword [rsi + 0x344], eax
mov eax, dword [rbp + 0x348]
cmp eax, 0xffffffff
je 0x14002278a
cmp eax, 0x10
jg 0x140022798
cmp eax, 1
jl 0x140022798
cmp dword [rsi + 0x348], 0xffffffff
je 0x14002279e
cmp eax, 0xffffffff
jne 0x14002279e
mov dword [rsi + 0x348], eax
mov eax, dword [rsi + 0x348]
cmp eax, 0xffffffff
je 0x1400227b7
cmp eax, dword [rsi + 0x4cc]
jle 0x1400227b7
mov dword [rsi + 0x4cc], eax
cmp byte [rbp + 0x370], 0
je 0x1400227c8
mov eax, dword [rbp + 0x374]
jmp 0x1400227ca
xor eax, eax
mov dword [rsi + 0x374], eax
mov eax, dword [rbp + 0x378]
mov dword [rsi + 0x378], eax
movzx eax, byte [rbp + 0x350]
mov byte [rsi + 0x350], al
mov eax, dword [rbp + 0x34c]
test eax, eax
je 0x140022807
cmp eax, 1
je 0x140022807
cmp eax, 2
je 0x140022807
cmp eax, 3
je 0x140022807
cmp eax, 6
jne 0x14002280d
mov dword [rsi + 0x34c], eax
cmp dword [rsi + 0x358], 0
mov ecx, 0x42
mov eax, 0x64
cmovne ecx, eax
xor r15b, r15b
lea r12, [rsi + 0x20]
mov dword [rsp + 0x70], ecx
test r9d, r9d
jle 0x140022a8a
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x40], r14
lea r14, [rsi + 0x3bc]
nop word [rax + rax]
movsx r13, r15b
imul r13, r13, 0xc8
mov eax, dword [r13 + rbp + 0x34]
test eax, eax
cmove eax, ecx
mov dword [r12 + 0x14], eax
mov eax, dword [r13 + rbp + 0x38]
mov dword [r12 + 0x18], eax
movss xmm0, dword [r13 + rbp + 0x28]
comiss xmm7, xmm0
jbe 0x140022895
movaps xmm0, xmm7
jmp 0x14002289d
comiss xmm0, xmm6
jbe 0x14002289d
movaps xmm0, xmm6
comiss xmm7, xmm0
movss dword [r14 - 4], xmm6
jbe 0x1400228ad
movaps xmm0, xmm7
jmp 0x1400228b5
comiss xmm0, xmm6
jbe 0x1400228b5
movaps xmm0, xmm6
movss dword [r14], xmm0
movss dword [r12 + 8], xmm0
mov ecx, dword [r13 + rbp + 0x20]
test ecx, ecx
jns 0x1400228ce
xor ecx, ecx
jmp 0x1400228d6
mov eax, dword [rsi + 4]
cmp ecx, eax
cmovg ecx, eax
mov dword [r12], ecx
mov edx, dword [r13 + rbp + 0x24]
test edx, edx
jns 0x1400228e7
xor edx, edx
jmp 0x1400228ef
mov eax, dword [rsi + 8]
cmp edx, eax
cmovg edx, eax
mov dword [r12 + 4], edx
mov eax, dword [r13 + rbp + 0x2c]
mov dword [r12 + 0xc], eax
mov eax, dword [r13 + rbp + 0x30]
mov dword [r12 + 0x10], eax
cmp dword [rsi + 0x1c], 1
jne 0x14002294d
test r15b, r15b
jne 0x14002294d
test ecx, ecx
jne 0x14002291e
mov eax, dword [rsi + 4]
mov dword [r12], eax
test edx, edx
jne 0x14002292a
mov eax, dword [rsi + 8]
mov dword [r12 + 4], eax
cmp dword [r12 + 0xc], 0
jne 0x14002293a
mov eax, dword [rsi + 0xc]
mov dword [r12 + 0xc], eax
cmp dword [r12 + 0x10], 0
jne 0x14002294d
mov eax, dword [rsi + 0x360]
mov dword [r12 + 0x10], eax
lea rdi, [r13 + rbp + 0x40]
lea rcx, [r12 + 0x20]
mov r8d, 0x98
mov rdx, rdi
call fcn.1401e3ed0
lea rcx, [r12 + 0x20]
mov rdx, rdi
mov r8d, 0x98
call fcn.1401e3ed0
mov r11d, dword [r13 + rbp + 0x3c]
mov ecx, dword [rsp + 0x70]
mov dword [r12 + 0x1c], r11d
movzx eax, byte [r13 + rbp + 0xd8]
mov byte [r12 + 0xb8], al
movzx eax, byte [r13 + rbp + 0xd9]
mov byte [r12 + 0xb9], al
movzx eax, byte [r13 + rbp + 0xda]
mov byte [r12 + 0xba], al
movzx eax, byte [r13 + rbp + 0xdb]
mov byte [r12 + 0xbb], al
movzx eax, byte [r13 + rbp + 0xdc]
mov byte [r12 + 0xbc], al
movzx eax, byte [r13 + rbp + 0xdd]
mov byte [r12 + 0xbd], al
movzx eax, byte [r13 + rbp + 0xde]
mov byte [r12 + 0xbe], al
movzx eax, byte [r13 + rbp + 0xdf]
mov byte [r12 + 0xbf], al
mov eax, dword [r13 + rbp + 0xe0]
mov dword [r12 + 0xc0], eax
movzx eax, word [r13 + rbp + 0xe4]
mov word [r12 + 0xc4], ax
movzx eax, word [r13 + rbp + 0xe6]
mov word [r12 + 0xc6], ax
cmp byte [rsi + 0x352], 0
mov eax, 0x53
cmove ecx, eax
inc r15b
add r14, 0x44
movsx eax, r15b
add r12, 0xc8
mov dword [rsp + 0x70], ecx
cmp eax, dword [rsi + 0x1c]
jl 0x140022860
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
mov rcx, rsi
call fcn.140022ab0
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x48
pop r15
pop r12
pop rsi
pop rbp
ret