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

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov r15, qword [0x140116768]
mov r13, rdx
mov r14, rcx
mov rax, qword [r15 + 0x4008]
mov byte [rax + 0xc0], 1
mov r12, qword [r15 + 0x4008]
cmp byte [r12 + 0xc3], 0
je 0x1400229f6
xor al, al
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
movsxd r8, dword [r12 + 0x100]
xor edx, edx
mov rax, qword [r12 + 0x108]
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x110], rdi
mov r8d, dword [rax + r8*4 - 4]
call fcn.140030a90
mov rcx, qword [r12]
mov edi, eax
cmp dword [rcx + 0x4054], eax
jne 0x140022a47
mov r8, r14
mov edx, 0xb
mov ecx, eax
call fcn.140048da0
mov rcx, qword gs:[0x58]
xor r8d, r8d
mov edx, 4
mov rax, qword [rcx]
mov eax, dword [rdx + rax]
cmp dword [0x1401170e8], eax
jg 0x1400230fc
jmp 0x140022a6f
xor r8d, r8d
mov rsi, qword [0x140117108]
mov rbx, rsi
mov rax, qword [rsi + 8]
movzx edx, byte [rax + 0x19]
test dl, dl
jne 0x140022a9f
mov rcx, rax
cmp dword [rcx + 0x1c], edi
jae 0x140022a93
mov rcx, qword [rcx + 0x10]
jmp 0x140022a99
mov rbx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140022a88
cmp byte [rbx + 0x19], 0
jne 0x140022aaa
cmp edi, dword [rbx + 0x1c]
jae 0x140022aad
mov rbx, rsi
cmp rbx, rsi
jne 0x140022bd5
mov qword [rsp + 0x78], r8
mov rcx, rsi
mov dword [rbp - 0x60], edi
vxorps xmm1, xmm1, xmm1
vmovups ymmword [rbp - 0x80], ymm1
vmovups ymm0, ymmword [rsp + 0x78]
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], r8d
vextractf128 xmm1, ymm1, 1
vmovups ymmword [rbp - 0x5c], ymm0
vmovhpd qword [rbp - 0x3c], xmm1
test dl, dl
jne 0x140022b17
nop dword [rax]
mov qword [rsp + 0x78], rax
cmp dword [rax + 0x1c], edi
jae 0x140022b04
mov rax, qword [rax + 0x10]
mov dword [rbp - 0x80], r8d
jmp 0x140022b11
mov rcx, rax
mov dword [rbp - 0x80], 1
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140022af0
cmp byte [rcx + 0x19], 0
jne 0x140022b22
cmp edi, dword [rcx + 0x1c]
jae 0x140022b9d
movabs rax, 0x38e38e38e38e38e
cmp qword [0x140117110], rax
je 0x1400230f3
mov ecx, 0x48
vzeroupper
call fcn.1400783d8
vmovups ymm0, ymmword [rbp - 0x60]
vmovsd xmm1, qword [rbp - 0x40]
mov r8, rax
lea rdx, [rsp + 0x50]
vmovups ymmword [rax + 0x1c], ymm0
vmovups xmm0, xmmword [rsp + 0x78]
vmovsd qword [rax + 0x3c], xmm1
mov eax, dword [rbp - 0x38]
lea rcx, [0x140117108]
mov dword [r8 + 0x44], eax
mov qword [r8], rsi
mov qword [r8 + 8], rsi
mov qword [r8 + 0x10], rsi
mov word [r8 + 0x18], 0
vmovups xmmword [rsp + 0x50], xmm0
vzeroupper
call fcn.14002d330
mov rsi, qword [0x140117108]
mov rax, qword [rsi + 8]
mov rbx, rsi
cmp byte [rax + 0x19], 0
jne 0x140022bc7
nop word [rax + rax]
cmp dword [rax + 0x1c], edi
jae 0x140022bbb
mov rax, qword [rax + 0x10]
jmp 0x140022bc1
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140022bb0
cmp byte [rbx + 0x19], 0
jne 0x140022bd2
cmp edi, dword [rbx + 0x1c]
jae 0x140022bd5
mov rbx, rsi
mov rcx, qword [0x140116768]
vmovss xmm4, dword [r12 + 0x110]
vmovss xmm5, dword [r12 + 0x114]
vmovaps xmmword [rsp + 0x100], xmm6
mov rdx, qword [rcx + 0x4008]
vmovaps xmmword [rsp + 0xf0], xmm7
mov rax, rdx
vmovaps xmmword [rsp + 0xe0], xmm8
vmovaps xmmword [rsp + 0xd0], xmm9
cmp qword [rdx + 0x1b8], 0
jne 0x140022c3a
cmp qword [rcx + 0x4e20], 0
jne 0x140022c3a
add rax, 0x260
jmp 0x140022c40
add rax, 0x230
vmovss xmm0, dword [rax]
vsubss xmm3, xmm0, dword [rdx + 0x110]
vmovss xmm2, dword [0x140086f3c]
vaddss xmm1, xmm4, xmm3
vmovss dword [rsp + 0x70], xmm1
vmovss xmm1, dword [r15 + 0x3928]
vaddss xmm0, xmm5, xmm2
vmovss dword [rsp + 0x68], xmm4
vmovss dword [rsp + 0x6c], xmm5
vmovss dword [rsp + 0x74], xmm0
vmovss dword [rsp + 0x60], xmm3
vmovss dword [rsp + 0x64], xmm2
lea rcx, [rsp + 0x60]
vzeroupper
call fcn.140041890
xor r8d, r8d
lea rcx, [rsp + 0x68]
mov edx, edi
xor r9d, r9d
call fcn.140041610
xor eax, eax
lea r9, [rbp + 0x68]
lea r8, [rbp + 0x60]
mov dword [rsp + 0x20], eax
mov edx, edi
lea rcx, [rsp + 0x68]
call fcn.14005f130
movzx esi, al
vmovss xmm9, dword [0x140086f04]
vxorps xmm7, xmm7, xmm7
test al, al
je 0x140022ced
cmp byte [r13], 0
vmovss xmm0, dword [0x140086f44]
sete cl
xor edi, edi
mov byte [r13], cl
jmp 0x140022d05
movzx eax, byte [rbp + 0x60]
xor edi, edi
vmovd xmm0, eax
vmovd xmm1, edi
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm0, xmm9, xmm7, xmm2
vmovss xmm1, dword [r15 + 0x18]
vsubss xmm0, xmm0, dword [rbx + 0x20]
vmovss xmm3, dword [rbx + 0x20]
vmovss xmm6, dword [0x140086ee8]
vmulss xmm1, xmm0, xmm1
vfmadd231ss xmm3, xmm1, xmm6
vmovss dword [rbx + 0x20], xmm3
cmp byte [r13], 0
lea rax, [rsp + 0x50]
vmulss xmm8, xmm6, dword [r15 + 0x18]
je 0x140022d47
vmovups xmm0, xmmword [0x1400872b0]
jmp 0x140022d4f
vmovups xmm0, xmmword [0x140087200]
vmovss xmm5, dword [rbx + 0x28]
vmovss xmm3, dword [rbx + 0x30]
vmovss xmm4, dword [rbx + 0x2c]
vmovups xmmword [rsp + 0x50], xmm0
vmovups xmm2, xmmword [rax]
vsubss xmm0, xmm2, dword [rbx + 0x28]
vfmadd231ss xmm5, xmm8, xmm0
vshufps xmm0, xmm2, xmm2, 0x55
vsubss xmm0, xmm0, dword [rbx + 0x2c]
vfmadd231ss xmm4, xmm8, xmm0
vshufps xmm0, xmm2, xmm2, 0xaa
vsubss xmm0, xmm0, dword [rbx + 0x30]
vfmadd231ss xmm3, xmm8, xmm0
vshufps xmm2, xmm2, xmm2, 0xff
vsubss xmm0, xmm2, dword [rbx + 0x34]
vmovss xmm2, dword [rbx + 0x34]
vfmadd231ss xmm2, xmm8, xmm0
vmovaps xmm8, xmmword [rsp + 0xe0]
vinsertps xmm5, xmm5, xmm4, 0x10
vinsertps xmm5, xmm5, xmm3, 0x20
vmovss xmm3, dword [rbx + 0x24]
vinsertps xmm5, xmm5, xmm2, 0x30
vmovups xmmword [rbx + 0x28], xmm5
movzx eax, byte [r13]
vmovd xmm0, eax
vmovd xmm1, edi
vpcmpeqd xmm2, xmm0, xmm1
vmovss xmm1, dword [0x140086f18]
vblendvps xmm0, xmm1, xmm7, xmm2
vsubss xmm1, xmm0, xmm3
vmulss xmm2, xmm1, dword [r15 + 0x18]
vfmadd231ss xmm3, xmm2, xmm6
vmovss dword [rbx + 0x24], xmm3
cmp byte [r13], 0
lea rax, [rsp + 0x50]
vmulss xmm6, xmm6, dword [r15 + 0x18]
vmovups xmmword [rsp + 0x50], xmm5
je 0x140022e1e
vmovups xmm0, xmmword [0x1400872f0]
jmp 0x140022e26
vmovups xmm0, xmmword [0x140087190]
vmovss xmm5, dword [rbx + 0x38]
vmovss xmm4, dword [rbx + 0x3c]
vmovss xmm3, dword [rbx + 0x40]
vmovups xmmword [rsp + 0x50], xmm0
vmovups xmm2, xmmword [rax]
vsubss xmm0, xmm2, dword [rbx + 0x38]
vfmadd231ss xmm5, xmm6, xmm0
vshufps xmm0, xmm2, xmm2, 0x55
vsubss xmm0, xmm0, dword [rbx + 0x3c]
vfmadd231ss xmm4, xmm6, xmm0
vshufps xmm0, xmm2, xmm2, 0xaa
vsubss xmm0, xmm0, dword [rbx + 0x40]
vfmadd231ss xmm3, xmm6, xmm0
vshufps xmm2, xmm2, xmm2, 0xff
vsubss xmm0, xmm2, dword [rbx + 0x44]
vmovss xmm2, dword [rbx + 0x44]
vfmadd231ss xmm2, xmm6, xmm0
vmovups xmm0, xmmword [0x140087210]
vmovups xmmword [rsp + 0x78], xmm0
vinsertps xmm5, xmm5, xmm4, 0x10
vinsertps xmm5, xmm5, xmm3, 0x20
vinsertps xmm5, xmm5, xmm2, 0x30
vmovups xmmword [rbx + 0x38], xmm5
vmovss xmm1, dword [rsp + 0x68]
vaddss xmm0, xmm1, dword [0x140086f38]
vmovss xmm2, dword [rsp + 0x6c]
vaddss xmm1, xmm1, dword [0x140086ef4]
vmovss dword [rsp + 0x60], xmm0
vaddss xmm0, xmm2, dword [0x140086f2c]
vmovups xmmword [rsp + 0x50], xmm5
vmovss dword [rsp + 0x64], xmm0
vaddss xmm0, xmm2, dword [0x140086ed0]
lea rcx, [rsp + 0x78]
vmovss dword [rsp + 0x54], xmm0
vmovss dword [rsp + 0x50], xmm1
call fcn.140030e90
mov rcx, qword [r12 + 0x2a8]
lea rdx, [rsp + 0x50]
mov r9d, eax
mov dword [rsp + 0x28], edi
lea r8, [rsp + 0x60]
vmovss dword [rsp + 0x20], xmm7
call fcn.140054c60
vmovups xmm0, xmmword [rbx + 0x28]
vmovss xmm1, dword [rsp + 0x68]
vmovss xmm2, dword [rsp + 0x6c]
vmovups xmmword [rsp + 0x78], xmm0
vaddss xmm0, xmm1, dword [0x140086f34]
vaddss xmm1, xmm1, dword [0x140086ef8]
vmovss dword [rsp + 0x50], xmm0
vaddss xmm0, xmm2, dword [0x140086f28]
vmovss dword [rsp + 0x54], xmm0
vaddss xmm0, xmm2, dword [0x140086ee0]
lea rcx, [rsp + 0x78]
vmovss dword [rsp + 0x64], xmm0
vmovss dword [rsp + 0x60], xmm1
call fcn.140030e90
mov rcx, qword [r12 + 0x2a8]
lea rdx, [rsp + 0x60]
mov r9d, eax
mov dword [rsp + 0x28], edi
lea r8, [rsp + 0x50]
vmovss dword [rsp + 0x20], xmm7
call fcn.140054c60
vmovups xmm0, xmmword [rbx + 0x38]
mov r8, qword [0x140116768]
lea rcx, [rsp + 0x50]
mov rdi, qword [r12 + 0x2a8]
vmovups xmmword [rsp + 0x50], xmm0
vshufps xmm0, xmm0, xmm0, 0xff
vmulss xmm0, xmm0, dword [r8 + 0x38e8]
vmovss dword [rsp + 0x5c], xmm0
call fcn.140030e90
vmovaps xmm6, xmmword [rsp + 0x100]
mov ebx, eax
vmovss xmm2, dword [r8 + 0x3d38]
test r14, r14
je 0x140023017
vmovss xmm0, dword [0x14008702c]
mov rcx, qword [r8 + 0x3d30]
lea rdx, [rsp + 0x50]
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
vmovss dword [rsp + 0x20], xmm0
call fcn.140059610
vmovss xmm2, dword [rsp + 0x54]
vmovss xmm0, dword [rsp + 0x68]
vaddss xmm1, xmm0, dword [0x140086f50]
vmovss xmm0, dword [0x140086da4]
vfnmadd213ss xmm0, xmm2, xmm9
vmovaps xmm9, xmmword [rsp + 0xd0]
vaddss xmm0, xmm0, dword [rsp + 0x6c]
vmovss dword [rsp + 0x54], xmm0
vmovss dword [rsp + 0x50], xmm1
test ebx, 0xff000000
je 0x1400230bd
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [r14 + rcx], 0
jne 0x140023060
add rcx, r14
cmp r14, rcx
je 0x1400230bd
mov rax, qword [rdi + 0x38]
lea r9, [rsp + 0x50]
vmovups xmm0, xmmword [rdi + 0x88]
mov byte [rsp + 0x48], 0
mov rdx, rdi
vmovss dword [rsp + 0x40], xmm7
vmovss xmm2, dword [rax + 0x10]
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rcx
mov rcx, qword [rax + 8]
vmovups xmmword [rsp + 0x78], xmm0
mov dword [rsp + 0x20], ebx
call fcn.140059850
vmovaps xmm7, xmmword [rsp + 0xf0]
movzx eax, sil
mov rsi, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x110]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
vzeroupper
call fcn.140021d40
int3
lea rcx, [0x1401170e8]
call fcn.1400786fc
cmp dword [0x1401170e8], 0xffffffff
jne 0x140022a6c
xor eax, eax
mov qword [0x140117108], rax
mov qword [0x140117110], rax
lea ecx, [rax + 0x48]
call fcn.1400783d8
lea rcx, [0x14007ca30]
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [0x140117108], rax
call fcn.14007863c
lea rcx, [0x1401170e8]
call fcn.140078690
jmp 0x140022a6c