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

Disassembly:
sub esp, 0xac
push ebx
push ebp
push esi
mov esi, dword [esp + 0xbc]
push edi
xor edi, edi
cmp esi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov word [esp + 0x2c], di
mov word [esp + 0x2e], di
mov word [esp + 0x30], di
je 0x46f15f
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x28], edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
sar ecx, 0xc
sar edx, 0xc
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0xc]
sar ecx, 0xc
sar edx, 0xc
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0x14]
sar ecx, 0xc
sar edx, 0xc
mov dword [esp + 0x68], ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x6c], edx
lea ecx, [esp + 0x64]
push eax
lea edx, [esp + 0x50]
push ecx
push edx
call fcn.0046e990
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x78], eax
mov ax, word [esi + 4]
test al, 0x21
mov dword [esp + 0x74], eax
jne 0x46f144
mov cx, word [esp + 0xcc]
cmp word [esi + 6], cx
je 0x46f154
xor eax, eax
mov ebx, dword [esp + 0x50]
mov al, byte [esi + 0x1f]
mov edi, dword [esp + 0x6c]
mov edx, eax
shl edx, 4
add edx, eax
xor eax, eax
mov ax, word [esi + 0x1a]
mov ecx, dword [edx*4 + 0x6b2454]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x68]
mov ebp, ecx
sub ebp, eax
mov dword [esp + 0x14], edx
mov dword [0x610b20], ebp
mov ebp, ebx
sub edx, ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x18], edi
mov dword [0x610b28], edx
mov edx, dword [esp + 0x78]
sub edi, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ecx
mov dword [0x610b30], edi
mov dword [esp + 0x28], edx
mov edx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov ebp, dword [esi + 0x10]
sar edx, 0xc
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
sar edi, 0xc
sub ebx, edi
sub edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
sar ebp, 0xc
sub edi, ebp
sub eax, ebp
mov dword [esp + 0x18], edi
lea edi, [esi + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edx
mov ebp, dword [edi]
mov dword [esp + 0x2c], ebp
mov di, word [edi + 4]
test bp, bp
mov word [esp + 0x30], di
jne 0x46ee7e
cmp word [esp + 0x2e], bp
jne 0x46ee7e
test di, di
je 0x46efdd
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x1c]
mov edi, dword [edi + 8]
sar edi, 0xc
cmp ebp, edi
jg 0x46f142
cmp ebx, edi
jg 0x46f142
cmp eax, edi
jg 0x46f142
neg edi
cmp ecx, edi
jl 0x46f142
cmp edx, edi
jl 0x46f142
cmp dword [esp + 0x18], edi
jl 0x46f142
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.0046d1e0
push str.DCTransposeMatrix_doesnt_work_on_a_single_matrix.
push 1
call fcn.004015b0
add esp, 0x10
lea edi, [esp + 0x9c]
lea eax, [esp + 0x7c]
mov ebx, 3
mov ecx, edi
mov edx, 3
mov bp, word [ecx]
add ecx, 6
mov word [eax], bp
add eax, 2
dec edx
jne 0x46eef8
add edi, 2
dec ebx
jne 0x46eef1
mov cl, byte [esp + 0x28]
test cl, 1
je 0x46ef26
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
test cl, 2
je 0x46ef3b
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
test cl, 4
je 0x46ef50
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x60], ecx
lea eax, [esp + 0x58]
push edx
lea ecx, [esp + 0x80]
push eax
push ecx
mov dword [esp + 0x34], 0
call fcn.0046cfc0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x64]
push edx
lea ecx, [esp + 0x8c]
push eax
push ecx
call fcn.0046cfc0
lea edx, [esp + 0x40]
lea eax, [esp + 0x28]
push edx
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.0046e990
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
add esp, 0x24
mov ebp, dword [esp + 0x1c]
mov edi, ecx
sub edi, ebp
lea ebp, [esp + 0x40]
mov dword [0x610b20], edi
mov edi, edx
sub edi, ebx
push ebp
lea ebp, [esp + 0x38]
mov dword [0x610b28], edi
mov edi, dword [esp + 0x1c]
push ebp
sub edi, eax
sub esp, 0xc
mov dword [0x610b30], edi
mov ebp, esp
xor edi, edi
mov dword [ebp], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [ebp + 4], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [ebp + 8], edi
mov edi, dword [esp + 0x3c]
push edi
sub esp, 0xc
mov edi, esp
sub esp, 0xc
mov dword [edi], ecx
mov ecx, esp
mov dword [edi + 4], edx
mov edx, dword [esp + 0x48]
mov dword [edi + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xa0]
push eax
call fcn.0046ea20
mov eax, dword [esp + 0xa8]
add esp, 0x34
test ah, 2
je 0x46f0d2
movsx eax, word [esi + 0x18]
movsx ecx, word [esi + 0x1a]
movsx edx, word [esi + 0x1c]
mov ebp, eax
imul eax, dword [esp + 0x40]
imul ebp, dword [esp + 0x34]
mov ebx, ecx
imul ecx, dword [esp + 0x44]
imul ebx, dword [esp + 0x38]
mov edi, edx
imul edx, dword [esp + 0x48]
imul edi, dword [esp + 0x3c]
sar ebp, 0xc
sar ebx, 0xc
sar edi, 0xc
sar eax, 0xc
sar ecx, 0xc
sar edx, 0xc
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
jmp 0x46f0de
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], eax
mov eax, esp
sub esp, 0xc
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x34]
mov dword [eax], ebp
mov ecx, esp
sub esp, 0xc
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov eax, dword [esp + 0x44]
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.0046eb30
add esp, 0x30
test al, al
jne 0x46f152
xor edi, edi
mov dx, word [esp + 0xcc]
mov word [esi + 6], dx
jmp 0x46f154
xor edi, edi
mov esi, dword [esi + 0x20]
cmp esi, edi
jne 0x46ed7b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret