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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4963e2
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x4c1cfc]
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 0x439df3
and esi, 0x80000003
jns 0x439e0a
dec esi
or esi, 0xfffffffc
inc esi
jmp 0x439e0a
neg esi
mov eax, esi
and eax, 0x80000003
jns 0x439e03
dec eax
or eax, 0xfffffffc
inc eax
mov esi, 4
sub esi, eax
cmp esi, 4
ja case.default.0x439e0f
jmp dword [esi*4 + 0x43a0b8]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.00438220
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.0x439e0f
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.00439880
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.0x439eb5
jmp dword [esi*4 + 0x43a0cc]
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.0x439eb5.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 0x439f21
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 0x439ef5
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 0x439ed4
jmp case.0x439eb5.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.0x439eb5.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 0x439f9e
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 0x439f76
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 0x439f60
jmp case.0x439eb5.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.0x439eb5.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 0x43a02b
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 0x43a003
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 0x439fe0
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.0x439e0f.0
mov eax, dword [esp + 0x60]
push eax
call fcn.0046ed1d
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.0046e65a
add esp, 4
push eax
lea ecx, [esp + 0x78]
call fcn.00403d80
push 0x4b5284
lea ecx, [esp + 0x70]
push ecx
call fcn.0046d8b8
nop
jno 0x43a05a
inc ebx
add byte [esi], dl
sahf
inc ebx
add byte [esi], bh
sahf
inc ebx
add byte [esi], dl
sahf
inc ebx
add byte [ecx - 0x60], dh
inc ebx
add byte [edi - 0x60], al
inc ebx
add byte [esi + ebx*4 - 0x6040ffbd], bh
inc ebx
add byte [edx - 0x61], al
inc ebx
add byte [edi - 0x60], al
inc ebx
add byte [edx - 1], ch
push 0x496416
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x4c1cfc]
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.004409c0
lea ecx, [esi + 0x58]
mov byte [esp + 0x14], 1
call fcn.004409c0
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret