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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x49afe2
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x4c5d0c]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov ebx, ecx
xor eax, eax
mov dword [esp + 0x50], vtable.Psychlops::Matrix.0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x64], al
mov dword [esp + 0x68], 1
mov esi, dword [ebp + 8]
cmp esi, eax
mov dword [esp + 0x100], eax
jl 0x444e13
and esi, 0x80000003
jns 0x444e2a
dec esi
or esi, 0xfffffffc
inc esi
jmp 0x444e2a
neg esi
mov eax, esi
and eax, 0x80000003
jns 0x444e23
dec eax
or eax, 0xfffffffc
inc eax
mov esi, 4
sub esi, eax
cmp esi, 4
ja case.default.0x444e2f
jmp dword [esi*4 + 0x4450d8]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.00443240
fldz
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x30]
sub esp, 8
lea ecx, [esp + 0x58]
fstp qword [esp]
call edx
jmp case.default.0x444e2f
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.004448a0
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x18]
push ecx
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
call edx
mov eax, dword [ebx + 4]
imul eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*8]
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x38]
push edx
mov edx, dword [eax + 0x14]
lea ecx, [esp + 0x5c]
call edx
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
imul eax, edx
lea ecx, [edi + eax*8]
mov dword [esp + 0x40], ecx
cmp esi, 4
ja case.default.0x444ed5
jmp dword [esi*4 + 0x4450ec]
mov eax, dword [esp + 0x14]
mov ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x20]
jae case.0x444ed5.0
mov edi, dword [esp + 0x54]
mov esi, dword [ebx + 8]
dec edi
imul edi, edx
lea esi, [eax + esi*8]
lea ecx, [ecx + edi*8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], ecx
cmp eax, esi
jae 0x444f41
fld qword [eax]
fstp qword [ecx]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov ecx, edx
neg ecx
add eax, 8
lea ecx, [esi + ecx*8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], ecx
cmp eax, dword [esp + 0x24]
jb 0x444f15
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x3c]
add ecx, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x20]
jb 0x444ef4
jmp case.0x444ed5.0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
lea ecx, [edi + edx*8 - 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x20]
jae case.0x444ed5.0
mov edx, dword [ebx + 8]
lea edx, [eax + edx*8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], ecx
cmp eax, edx
jae 0x444fbe
fld qword [eax]
fstp qword [ecx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
add eax, 8
lea ecx, [edx + ecx*8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], ecx
cmp eax, dword [esp + 0x24]
jb 0x444f96
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x3c]
sub ecx, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x20]
jb 0x444f80
jmp case.0x444ed5.0
mov eax, dword [esp + 0x14]
lea esi, [edx*8]
sub ecx, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
cmp eax, dword [esp + 0x20]
jae case.0x444ed5.0
lea ebx, [ebx]
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x58]
lea esi, [eax + esi*8]
lea edi, [ecx + edi*8 - 8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edi
cmp eax, esi
jae 0x44504b
mov ecx, 8
fld qword [eax]
mov edx, dword [esp + 0x3c]
fstp qword [edx]
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x3c], ecx
add eax, ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x24]
jb 0x445023
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
lea eax, [eax + esi*8]
mov esi, edx
neg esi
lea ecx, [ecx + esi*8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
cmp eax, dword [esp + 0x20]
jb 0x445000
mov eax, dword [ebx]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x50]
push ecx
mov ecx, ebx
call edx
cmp byte [esp + 0x64], 0
mov dword [esp + 0x50], vtable.Psychlops::Matrix.0
je case.0x444e2f.0
mov eax, dword [esp + 0x60]
push eax
call fcn.00472230
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.Notify_this_error_to_developers.
push str.ARGUMENT_ERROR
push ebx
call fcn.00472daa
add esp, 4
push eax
lea ecx, [esp + 0x78]
call fcn.0040e5a0
push 0x4b9b04
lea ecx, [esp + 0x70]
push ecx
call fcn.00471f1d
nop
xchg ecx, eax
push eax
inc esp
add byte [esi], dh
dec esi
inc esp
add byte [esi + 0x4e], bl
inc esp
add byte [esi], dh
dec esi
inc esp
add byte [ecx + 0x67004450], dl
push eax
inc esp
add ah, bl
dec esi
inc esp
add bh, bl
dec edi
inc esp
add byte [edx + 0x4f], ah
inc esp
add byte [edi + 0x50], ah
inc esp
add byte [edx - 1], ch
push 0x49b016
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x4c5d0c]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 8], esi
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov byte [esi + 0x14], al
mov dword [esi + 0x18], 1
lea ecx, [esi + 0x30]
mov dword [esp + 0x14], eax
mov dword [esi], vtable.Psychlops::MatrixExpression.0
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
call fcn.0040f3d0
lea ecx, [esi + 0x58]
mov byte [esp + 0x14], 1
call fcn.0040f3d0
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret