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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x45c
mov eax, dword [0x49e7c0]
xor eax, esp
mov dword [esp + 0x458], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x4c], edx
lea edx, [esi - 1]
imul edx, eax
neg eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x94]
push edi
add ecx, edx
push eax
mov dword [esp + 0x1c], ecx
call fcn.0041e000
mov ebx, dword [ebp + 0x10]
mov eax, ebx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea ecx, [eax*4 - 4]
mov eax, 0xff00ff
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov eax, 0x800080
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov eax, 0x2000
add esp, 4
cmp byte [ebp + 0x20], 0
mov dword [esp + 0x54], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
je 0x41bd1c
mov eax, 0x4a85
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, 0x33130000
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, 0xe5fcf377
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x38], 0x12a15
mov dword [esp + 0x34], 0x19893
mov dword [esp + 0x2c], 0xd021
mov dword [esp + 0x20], 0x6419
mov dword [esp + 0x3c], 0x2049c
mov dword [esp + 0x78], 0x100010
mov dword [esp + 0x7c], 0
mov eax, 0x408d
jmp 0x41bd7e
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov eax, 0x4000
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, 0x2cdd0000
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, 0xe927f4fe
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x38], 0x10000
mov dword [esp + 0x34], 0x166e9
mov dword [esp + 0x2c], 0xb6d2
mov dword [esp + 0x20], 0x5819
mov dword [esp + 0x3c], 0x1c5a2
mov eax, 0x38b4
lea ecx, [esp + 0xe0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
call fcn.00409060
test byte [esp + 0xd0], 1
je 0x41c0c4
test esi, esi
jle 0x41c25d
mov dword [esp + 0x30], esi
xor ecx, ecx
cmp dword [esp + 0x54], ecx
mov dword [esp + 0x24], ecx
jle 0x41bf20
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
lea esi, [esi + eax*2]
lea eax, [eax + eax*2]
add edi, eax
movd mm0, dword [esi]
movd mm5, dword [esi + 4]
movq mm1, mm0
pand mm0, qword [esp + 0x88]
movq mm4, mm5
psrlw mm1, 8
pand mm4, qword [esp + 0x88]
movq mm2, mm5
psrlw mm5, 8
psubw mm0, qword [esp + 0x78]
movd mm6, dword [esi + 8]
psrlw mm2, 8
psubw mm4, qword [esp + 0x78]
paddw mm2, mm1
psrlw mm6, 8
psubw mm1, qword [esp + 0x90]
paddw mm6, mm5
psllq mm2, 0x20
psubw mm5, qword [esp + 0x90]
punpcklwd mm0, mm2
psllq mm6, 0x20
pmaddwd mm0, qword [esp + 0x58]
punpcklwd mm4, mm6
paddw mm1, mm1
pmaddwd mm4, qword [esp + 0x58]
paddw mm5, mm5
paddw mm1, mm2
paddd mm0, qword [esp + 0x80]
paddw mm5, mm6
movq mm2, mm1
paddd mm4, qword [esp + 0x80]
movq mm3, mm1
movq mm6, mm5
pmaddwd mm1, qword [esp + 0x60]
movq mm7, mm5
paddd mm1, mm0
pmaddwd mm5, qword [esp + 0x60]
psrad mm1, 0xe
paddd mm5, mm4
pmaddwd mm2, qword [esp + 0x70]
psrad mm5, 0xe
paddd mm2, mm0
pmaddwd mm6, qword [esp + 0x70]
psrad mm2, 0xe
paddd mm6, mm4
pmaddwd mm3, qword [esp + 0x68]
psrad mm6, 0xe
paddd mm3, mm0
pmaddwd mm7, qword [esp + 0x68]
psrad mm3, 0xe
paddd mm7, mm4
pxor mm0, mm0
psrad mm7, 0xe
packssdw mm3, mm2
packssdw mm7, mm6
packssdw mm1, mm0
packssdw mm5, mm0
movq mm2, mm3
movq mm6, mm7
punpcklwd mm2, mm1
punpcklwd mm6, mm5
punpckhwd mm3, mm1
punpckhwd mm7, mm5
movq mm0, mm2
movq mm4, mm6
punpcklwd mm0, mm3
punpcklwd mm4, mm7
psllq mm0, 0x10
psllq mm4, 0x10
punpckhwd mm2, mm3
punpckhwd mm6, mm7
packuswb mm0, mm2
packuswb mm4, mm6
psrlq mm0, 8
psllq mm4, 8
movd dword [edi], mm0
psrlq mm0, 0x20
por mm4, mm0
movd dword [edi + 4], mm4
psrlq mm4, 0x20
movd dword [edi + 8], mm4
add ecx, 4
cmp ecx, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
jl 0x41bdc0
cmp ecx, ebx
jge 0x41c0a4
mov eax, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x1c], edx
lea edx, [eax + ecx*2]
lea eax, [ecx + edx + 2]
mov edx, dword [esp + 0x18]
lea esi, [edx + ecx*2 + 1]
mov dword [esp + 0x14], esi
jmp 0x41bf50
movzx edx, byte [esi + 1]
movzx ecx, byte [esi - 1]
lea edi, [ebx - 2]
cmp dword [esp + 0x24], edi
mov dword [esp + 0x44], edx
movzx edx, byte [esi]
movzx esi, byte [esi + 2]
jge 0x41bf7a
mov ebx, dword [esp + 0x14]
movzx edi, byte [ebx + 4]
movzx ebx, byte [ebx + 6]
jmp 0x41bf7e
mov edi, edx
mov ebx, esi
sub ecx, dword [esp + 0x28]
add edi, edx
imul ecx, dword [esp + 0x38]
sar edi, 1
mov dword [esp + 0x48], edi
lea edi, [ebx + esi]
sar edi, 1
add edx, 0xffffff80
mov dword [esp + 0x40], edi
mov edi, ecx
mov ecx, edx
imul edx, dword [esp + 0x20]
imul ecx, dword [esp + 0x3c]
lea ecx, [ecx + edi + 0x8000]
sar ecx, 0x10
mov cl, byte [esp + ecx + 0x220]
mov byte [eax - 2], cl
add esi, 0xffffff80
mov ecx, esi
imul esi, dword [esp + 0x34]
imul ecx, dword [esp + 0x2c]
mov ebx, edi
sub ebx, ecx
sub ebx, edx
add ebx, 0x8000
sar ebx, 0x10
movzx edx, byte [esp + ebx + 0x220]
mov ebx, dword [ebp + 0x10]
lea ecx, [esi + edi + 0x8000]
sar ecx, 0x10
cmp dword [esp + 0x1c], ebx
mov byte [eax - 1], dl
movzx edx, byte [esp + ecx + 0x220]
mov byte [eax], dl
jge 0x41c07e
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x38]
mov esi, ecx
mov ecx, dword [esp + 0x48]
add ecx, 0xffffff80
mov edx, ecx
imul ecx, dword [esp + 0x20]
imul edx, dword [esp + 0x3c]
lea edx, [edx + esi + 0x8000]
sar edx, 0x10
mov dl, byte [esp + edx + 0x220]
mov byte [eax + 1], dl
mov edx, dword [esp + 0x40]
add edx, 0xffffff80
mov edi, edx
imul edx, dword [esp + 0x34]
imul edi, dword [esp + 0x2c]
mov ebx, esi
sub ebx, edi
sub ebx, ecx
add ebx, 0x8000
sar ebx, 0x10
movzx ecx, byte [esp + ebx + 0x220]
mov ebx, dword [ebp + 0x10]
lea edx, [edx + esi + 0x8000]
sar edx, 0x10
mov byte [eax + 2], cl
movzx ecx, byte [esp + edx + 0x220]
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
add dword [esp + 0x1c], 2
add ecx, 2
add esi, 4
add eax, 6
cmp ecx, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], esi
jl 0x41bf50
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add dword [esp + 0x18], edx
add dword [esp + 0x10], eax
sub dword [esp + 0x30], 1
jne 0x41bdac
jmp 0x41c25d
test esi, esi
jle 0x41c25d
mov dword [esp + 0x30], esi
xor edi, edi
test ebx, ebx
mov dword [esp + 0x1c], edi
jle 0x41c242
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
add eax, 2
add esi, 1
mov dword [esp + 0x14], esi
movzx edx, byte [esi + 1]
movzx ecx, byte [esi - 1]
add ebx, 0xfffffffe
cmp edi, ebx
mov dword [esp + 0x40], edx
movzx edx, byte [esi]
movzx esi, byte [esi + 2]
jge 0x41c118
mov ebx, dword [esp + 0x14]
movzx edi, byte [ebx + 4]
movzx ebx, byte [ebx + 6]
jmp 0x41c11c
mov edi, edx
mov ebx, esi
sub ecx, dword [esp + 0x28]
add edi, edx
imul ecx, dword [esp + 0x38]
sar edi, 1
mov dword [esp + 0x48], edi
lea edi, [ebx + esi]
sar edi, 1
add edx, 0xffffff80
mov dword [esp + 0x44], edi
mov edi, ecx
mov ecx, edx
imul edx, dword [esp + 0x20]
imul ecx, dword [esp + 0x3c]
lea ecx, [ecx + edi + 0x8000]
sar ecx, 0x10
mov cl, byte [esp + ecx + 0x220]
mov byte [eax - 2], cl
add esi, 0xffffff80
mov ecx, esi
imul esi, dword [esp + 0x34]
imul ecx, dword [esp + 0x2c]
mov ebx, edi
sub ebx, ecx
sub ebx, edx
add ebx, 0x8000
sar ebx, 0x10
movzx edx, byte [esp + ebx + 0x220]
mov ebx, dword [ebp + 0x10]
lea ecx, [esi + edi + 0x8000]
mov edi, dword [esp + 0x1c]
sar ecx, 0x10
mov byte [eax - 1], dl
movzx edx, byte [esp + ecx + 0x220]
lea ecx, [edi + 1]
cmp ecx, ebx
mov byte [eax], dl
jge 0x41c225
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x38]
mov esi, ecx
mov ecx, dword [esp + 0x48]
add ecx, 0xffffff80
mov edx, ecx
imul ecx, dword [esp + 0x20]
imul edx, dword [esp + 0x3c]
lea edx, [edx + esi + 0x8000]
sar edx, 0x10
mov dl, byte [esp + edx + 0x220]
mov byte [eax + 1], dl
mov edx, dword [esp + 0x44]
add edx, 0xffffff80
mov edi, edx
imul edx, dword [esp + 0x34]
imul edi, dword [esp + 0x2c]
mov ebx, esi
sub ebx, edi
mov edi, dword [esp + 0x1c]
sub ebx, ecx
add ebx, 0x8000
sar ebx, 0x10
movzx ecx, byte [esp + ebx + 0x220]
mov ebx, dword [ebp + 0x10]
lea edx, [edx + esi + 0x8000]
sar edx, 0x10
mov byte [eax + 2], cl
movzx ecx, byte [esp + edx + 0x220]
mov byte [eax + 3], cl
mov esi, dword [esp + 0x14]
add edi, 2
add esi, 4
add eax, 6
cmp edi, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], esi
jl 0x41c0f0
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add dword [esp + 0x18], edx
add dword [esp + 0x10], eax
sub dword [esp + 0x30], 1
jne 0x41c0d0
emms
mov ecx, dword [esp + 0x464]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004777ea
mov esp, ebp
pop ebp
ret 0x1c