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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x54
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov eax, ecx
and eax, 0xffff
shl ebx, 0x10
or ebx, eax
mov al, byte [edi + 0x12]
test al, al
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
je 0x4740d7
mov eax, dword [edi + 0xc]
test eax, eax
pxor mm0, mm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
movq qword [esp + 0x48], mm0
je 0x4740c3
lea ecx, [eax + eax*2]
lea edx, [eax + eax*2]
shl ecx, 3
shl edx, 5
lea edx, [edx + edi + 0x18]
mov dword [esp + 0x24], edx
jmp 0x473e60
mov ecx, dword [esp + 0x2c]
movzx esi, byte [edi + eax + 0x13]
mov edx, dword [esp + 0x24]
dec eax
sub ecx, 0x18
mov dword [esp + 0x2c], ecx
add ecx, esi
lea ebx, [edi + ecx*4 + 0x14]
mov cl, byte [edi + 0x13]
sub edx, 0x60
test cl, cl
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
je 0x473f96
lea eax, [esp + 0x30]
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + 1]
push ecx
push eax
mov eax, dword [ebp + 0x14]
push eax
call dword [eax + 0xf8]
add esp, 0x10
test esi, esi
jle 0x474072
nop
mov edi, dword [ebx]
mov al, byte [edi + 0x2e]
cmp al, 3
jne 0x473ee3
mov edx, dword [esp + 0x30]
mov ecx, dword [ebp + 0xc]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x34]
push ecx
push edi
mov dword [edi + 0xc], eax
call dword [0x72b16c]
movq mm0, qword [edi + 8]
add esp, 8
movq qword [esp + 0x30], mm0
jmp 0x473f85
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x473f14
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push esi
push edx
call fcn.00473ba0
mov ecx, eax
sub ecx, esi
lea ebx, [ebx + ecx*4]
mov esi, eax
jmp 0x473f89
mov edx, dword [edi + 4]
cmp edx, dword [esp + 0x18]
je 0x473f3a
test al, al
je 0x473f33
mov ecx, dword [ebp + 0xc]
push ecx
movzx eax, al
push edi
call dword [eax*4 + 0x72b160]
add esp, 8
mov edx, dword [esp + 0x18]
mov dword [edi + 4], edx
movq mm0, qword [edi + 8]
mov ax, 0xff
movd mm1, eax
movq mm2, mm1
punpcklwd mm2, mm1
movq mm1, mm2
punpcklwd mm2, mm1
pshufw mm1, mm0, 0xff
movq mm3, mm1
mov cx, 0x100
movd mm1, ecx
movq mm4, mm1
punpcklwd mm4, mm1
movq mm1, mm4
punpcklwd mm4, mm1
movq mm1, qword [esp + 0x30]
psubw mm4, mm3
pmullw mm1, mm4
psrlw mm1, 8
paddw mm1, mm0
pand mm1, mm2
movq qword [esp + 0x30], mm1
sub ebx, 4
dec esi
test esi, esi
jg 0x473eb0
jmp 0x47406e
test esi, esi
je 0x474076
mov edi, dword [ebx]
mov edx, dword [edi + 4]
cmp edx, dword [esp + 0x18]
je 0x473fc9
mov al, byte [edi + 0x2e]
test al, al
je 0x473fc2
mov ecx, dword [ebp + 0xc]
push ecx
movzx eax, al
push edi
call dword [eax*4 + 0x72b160]
add esp, 8
mov edx, dword [esp + 0x18]
mov dword [edi + 4], edx
movq mm0, qword [edi + 8]
sub ebx, 4
dec esi
movq qword [esp + 0x30], mm0
je 0x47406e
mov ax, 0xff
movd mm0, eax
movq mm1, mm0
punpcklwd mm1, mm0
movq mm0, mm1
punpcklwd mm1, mm0
movq qword [esp + 0x58], mm1
mov cx, 0x100
movd mm0, ecx
movq mm1, mm0
punpcklwd mm1, mm0
movq mm0, mm1
punpcklwd mm1, mm0
movq qword [esp + 0x50], mm1
mov dword [esp + 0x28], esi
mov esi, dword [ebx]
mov edi, dword [esp + 0x18]
cmp dword [esi + 4], edi
je 0x474037
mov al, byte [esi + 0x2e]
test al, al
je 0x474034
movzx edx, al
mov eax, dword [ebp + 0xc]
push eax
push esi
call dword [edx*4 + 0x72b160]
add esp, 8
mov dword [esi + 4], edi
movq mm0, qword [esi + 8]
movq mm2, qword [esp + 0x50]
mov eax, dword [esp + 0x28]
pshufw mm1, mm0, 0xff
psubw mm2, mm1
movq mm1, qword [esp + 0x30]
pmullw mm1, mm2
psrlw mm1, 8
sub ebx, 4
paddw mm1, mm0
pand mm1, qword [esp + 0x58]
dec eax
movq qword [esp + 0x30], mm1
mov dword [esp + 0x28], eax
jne 0x474010
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
movq mm0, qword [esp + 0x48]
mov cl, byte [edi + 0x11]
test cl, cl
paddw mm0, qword [esp + 0x30]
movq qword [esp + 0x48], mm0
je 0x4740a8
test eax, eax
jne 0x473e5c
mov eax, dword [ebp + 8]
movq mm0, qword [esp + 0x48]
movq qword [eax], mm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov cx, word [edi + 0xc]
movd mm1, ecx
movq mm2, mm1
punpcklwd mm2, mm1
movq mm1, mm2
punpcklwd mm2, mm1
pmullw mm0, mm2
movq qword [esp + 0x48], mm0
mov eax, dword [ebp + 8]
movq mm0, qword [esp + 0x48]
movq qword [eax], mm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov al, byte [edi + 0x11]
test al, al
mov eax, dword [edi + 0xc]
jne 0x474138
lea edx, [eax + eax*2]
shl edx, 5
mov esi, dword [edx + edi - 0x48]
cmp dword [esi + 4], ebx
je 0x47410f
mov al, byte [esi + 0x2e]
test al, al
je 0x47410c
push ecx
movzx eax, al
push esi
call dword [eax*4 + 0x72b160]
add esp, 8
mov word [esi + 0xe], 0xff
mov dword [esi + 4], ebx
mov cx, word [edi + 0xc]
mov eax, dword [ebp + 8]
movd mm0, ecx
movq mm1, mm0
punpcklwd mm1, mm0
movq mm0, mm1
punpcklwd mm1, mm0
movq mm0, qword [esi + 8]
pmullw mm0, mm1
movq qword [eax], mm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 4
jne 0x474238
mov edx, dword [edi + 0x138]
cmp dword [edx + 4], ebx
mov dword [esp + 0x20], edx
je 0x47416d
mov al, byte [edx + 0x2e]
test al, al
je 0x47416a
push ecx
movzx eax, al
push edx
call dword [eax*4 + 0x72b160]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [edx + 4], ebx
mov eax, dword [edi + 0xd8]
cmp dword [eax + 4], ebx
mov dword [esp + 0x24], eax
je 0x4741a0
mov cl, byte [eax + 0x2e]
test cl, cl
je 0x47419d
mov edx, dword [ebp + 0xc]
push edx
movzx ecx, cl
push eax
call dword [ecx*4 + 0x72b160]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x78]
cmp dword [esi + 4], ebx
je 0x4741cc
mov cl, byte [esi + 0x2e]
test cl, cl
je 0x4741c9
movzx eax, cl
mov ecx, dword [ebp + 0xc]
push ecx
push esi
call dword [eax*4 + 0x72b160]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [esi + 4], ebx
mov edi, dword [edi + 0x18]
cmp dword [edi + 4], ebx
je 0x4741f8
mov cl, byte [edi + 0x2e]
test cl, cl
je 0x4741f5
mov eax, dword [ebp + 0xc]
push eax
movzx edx, cl
push edi
call dword [edx*4 + 0x72b160]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [edi + 4], ebx
movq mm3, qword [eax + 8]
movq mm4, qword [edx + 8]
movq mm2, qword [esi + 8]
movq mm1, qword [edi + 8]
mov eax, dword [ebp + 8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xff0000
movq mm0, qword [esp + 0x48]
paddw mm4, mm3
paddw mm4, mm2
paddw mm4, mm1
por mm4, mm0
movq qword [eax], mm4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test eax, eax
pxor mm0, mm0
movq qword [esp + 0x48], mm0
je 0x474297
lea ecx, [eax + eax*2]
shl ecx, 5
lea edi, [ecx + edi + 0x18]
mov dword [esp + 0x28], eax
mov esi, dword [edi - 0x60]
mov eax, dword [esi + 4]
sub edi, 0x60
cmp eax, ebx
je 0x47427b
mov al, byte [esi + 0x2e]
test al, al
je 0x474278
movzx edx, al
mov eax, dword [ebp + 0xc]
push eax
push esi
call dword [edx*4 + 0x72b160]
add esp, 8
mov dword [esi + 4], ebx
mov eax, dword [esp + 0x28]
movq mm1, qword [esp + 0x48]
movq mm0, qword [esi + 8]
dec eax
paddw mm1, mm0
movq qword [esp + 0x48], mm1
mov dword [esp + 0x28], eax
jne 0x474252
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xff0000
movq mm0, qword [esp + 0x30]
pop edi
movq mm1, mm0
movq mm0, qword [esp + 0x44]
pop esi
por mm0, mm1
movq qword [eax], mm0
pop ebx
mov esp, ebp
pop ebp
ret 0x10