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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffdd8
mov esi, edx
mov ebx, eax
mov dword [esp], ecx
cmp dword [0x6ea9e0], 2
jne 0x5e79d4
call fcn.005e7998
mov dword [0x6ea9e0], eax
cmp dword [esp], 0xff
jne 0x5e7a08
xor eax, eax
mov al, byte [ebx + 0xe7]
imul dword [ebx + 0xa4]
add eax, 7
shr eax, 3
push eax
mov edx, dword [ebx + 0xc8]
inc edx
push edx
push esi
call fcn.0056419c
add esp, 0xc
jmp 0x5e889a
xor ecx, ecx
mov cl, byte [ebx + 0xe7]
cmp ecx, 0x10
jg 0x5e7a3c
je 0x5e7dd3
dec ecx
je 0x5e7a5c
dec ecx
je 0x5e7afe
sub ecx, 2
je 0x5e7ba0
sub ecx, 4
je 0x5e7c42
jmp 0x5e87c2
sub ecx, 0x18
je 0x5e7fd4
sub ecx, 8
je 0x5e8234
sub ecx, 0x10
je 0x5e84c6
jmp 0x5e87c2
mov eax, dword [ebx + 0xc8]
inc eax
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0x10], 7
xor eax, eax
xor edi, edi
mov dword [esp + 0x14], eax
mov esi, 0x80
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [esp + 0x10]
jmp 0x5e7af1
test dword [esp], esi
je 0x5e7aca
mov ecx, eax
mov edx, dword [esp + 4]
movzx edx, byte [edx]
sar edx, cl
and edx, 1
mov dword [esp + 0x18], edx
mov ecx, 7
sub ecx, eax
mov edx, 0x7f7f
sar edx, cl
and dl, 0xff
mov ecx, dword [esp + 8]
and byte [ecx], dl
mov ecx, eax
mov dl, byte [esp + 0x18]
shl dl, cl
mov ecx, dword [esp + 8]
or byte [ecx], dl
cmp eax, dword [esp + 0x14]
jne 0x5e7ade
mov eax, dword [esp + 0x10]
inc dword [esp + 4]
inc dword [esp + 8]
jmp 0x5e7ae2
add eax, dword [esp + 0xc]
cmp esi, 1
jne 0x5e7aee
mov esi, 0x80
jmp 0x5e7af0
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x5e7a8e
jmp 0x5e889a
mov eax, dword [ebx + 0xc8]
inc eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 6
xor eax, eax
xor edi, edi
mov dword [esp + 0x28], eax
mov esi, 0x80
mov dword [esp + 0x2c], 0xfffffffe
mov eax, dword [esp + 0x24]
jmp 0x5e7b93
test dword [esp], esi
je 0x5e7b6c
mov ecx, eax
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx]
sar edx, cl
and edx, 3
mov dword [esp + 0x30], edx
mov ecx, 6
sub ecx, eax
mov edx, 0x3f3f
sar edx, cl
and dl, 0xff
mov ecx, dword [esp + 0x20]
and byte [ecx], dl
mov ecx, eax
mov dl, byte [esp + 0x30]
shl dl, cl
mov ecx, dword [esp + 0x20]
or byte [ecx], dl
cmp eax, dword [esp + 0x28]
jne 0x5e7b80
mov eax, dword [esp + 0x24]
inc dword [esp + 0x1c]
inc dword [esp + 0x20]
jmp 0x5e7b84
add eax, dword [esp + 0x2c]
cmp esi, 1
jne 0x5e7b90
mov esi, 0x80
jmp 0x5e7b92
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x5e7b30
jmp 0x5e889a
mov eax, dword [ebx + 0xc8]
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 4
xor eax, eax
xor edi, edi
mov dword [esp + 0x40], eax
mov esi, 0x80
mov dword [esp + 0x44], 0xfffffffc
mov eax, dword [esp + 0x3c]
jmp 0x5e7c35
test dword [esp], esi
je 0x5e7c0e
mov ecx, eax
mov edx, dword [esp + 0x34]
movzx edx, byte [edx]
sar edx, cl
and edx, 0xf
mov dword [esp + 0x48], edx
mov ecx, 4
sub ecx, eax
mov edx, 0xf0f
sar edx, cl
and dl, 0xff
mov ecx, dword [esp + 0x38]
and byte [ecx], dl
mov ecx, eax
mov dl, byte [esp + 0x48]
shl dl, cl
mov ecx, dword [esp + 0x38]
or byte [ecx], dl
cmp eax, dword [esp + 0x40]
jne 0x5e7c22
mov eax, dword [esp + 0x3c]
inc dword [esp + 0x34]
inc dword [esp + 0x38]
jmp 0x5e7c26
add eax, dword [esp + 0x44]
cmp esi, 1
jne 0x5e7c32
mov esi, 0x80
jmp 0x5e7c34
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x5e7bd2
jmp 0x5e889a
mov dword [esp + 0x64], 0x10204080
mov dword [esp + 0x68], 0x1020408
cmp dword [0x6ea9e0], 0
je 0x5e7d0e
mov eax, dword [ebx + 0xc8]
inc eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], 0x80
mov edx, dword [esp]
not edx
mov dword [esp + 0x60], edx
mov ecx, dword [ebx + 0xa4]
and ecx, 0xfffffff8
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0xa4]
and eax, 7
mov dword [esp + 0x5c], eax
movd mm7, dword [esp + 0x60]
psubb mm6, mm6
punpcklbw mm7, mm7
punpcklwd mm7, mm7
punpckldq mm7, mm7
movq mm0, qword [esp + 0x64]
pand mm0, mm7
pcmpeqb mm0, mm6
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
cmp ecx, 0
je 0x5e7ce7
nop
nop
nop
nop
movq mm4, qword [esi]
pand mm4, mm0
movq mm6, mm0
pandn mm6, qword [ebx]
por mm4, mm6
movq qword [ebx], mm4
add esi, 8
add ebx, 8
sub ecx, 8
ja 0x5e7cca
mov ecx, dword [esp + 0x5c]
cmp ecx, 0
je 0x5e7d07
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x5e7d02
mov al, byte [esi]
mov byte [ebx], al
inc esi
inc ebx
dec ecx
jne 0x5e7cfa
emms
jmp 0x5e889a
xor edx, edx
mov dl, byte [ebx + 0x100]
mov ecx, dword [edx*4 + 0x6ea6e4]
mov dword [esp + 0x74], ecx
push esi
lea edi, [esp + 0x184]
mov esi, 0x6ea9e4
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
movzx edi, byte [ebx + 0xe7]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
sar edi, 3
mov edx, dword [esp + eax*4 + 0x180]
imul edx, edi
add edx, dword [ebx + 0xc8]
inc edx
mov dword [esp + 0x4c], edx
mov cl, byte [ebx + 0x100]
mov eax, dword [esp + ecx*4 + 0x180]
imul edi
add esi, eax
xor edx, edx
mov dword [esp + 0x50], esi
mov dl, byte [ebx + 0x100]
mov ecx, dword [esp + edx*4 + 0x180]
imul ecx, edi
mov dword [esp + 0x6c], ecx
mov eax, dword [ebx + 0xa4]
imul edi
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x6c]
imul ebx, edi
cmp esi, dword [esp + 0x70]
jae 0x5e889a
push edi
mov eax, dword [esp + 0x50]
push eax
mov edx, dword [esp + 0x58]
push edx
call fcn.0056419c
add esp, 0xc
add dword [esp + 0x4c], ebx
add dword [esp + 0x50], ebx
add esi, ebx
cmp esi, dword [esp + 0x70]
jb 0x5e7dab
jmp 0x5e889a
mov dword [esp + 0x8c], 0x4040808
mov dword [esp + 0x90], 0x1010202
mov dword [esp + 0x94], 0x40408080
mov dword [esp + 0x98], 0x10102020
cmp dword [0x6ea9e0], 0
je 0x5e7ef7
mov ecx, dword [ebx + 0xc8]
inc ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], esi
mov eax, dword [esp]
not eax
mov dword [esp + 0x84], eax
mov edx, dword [ebx + 0xa4]
and edx, 0xfffffff8
mov dword [esp + 0x80], edx
mov ecx, dword [ebx + 0xa4]
and ecx, 7
mov dword [esp + 0x88], ecx
movd mm7, dword [esp + 0x84]
psubb mm6, mm6
punpcklbw mm7, mm7
punpcklwd mm7, mm7
punpckldq mm7, mm7
movq mm0, qword [esp + 0x94]
movq mm1, qword [esp + 0x8c]
pand mm0, mm7
pand mm1, mm7
pcmpeqb mm0, mm6
pcmpeqb mm1, mm6
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp ecx, 0
je 0x5e7ec7
nop
nop
nop
nop
movq mm4, qword [esi]
pand mm4, mm0
movq mm6, mm0
movq mm7, qword [ebx]
pandn mm6, mm7
por mm4, mm6
movq qword [ebx], mm4
movq mm5, qword [esi + 8]
pand mm5, mm1
movq mm7, mm1
movq mm6, qword [ebx + 8]
pandn mm7, mm6
por mm5, mm7
movq qword [ebx + 8], mm5
add esi, 0x10
add ebx, 0x10
sub ecx, 8
ja 0x5e7e8f
mov ecx, dword [esp + 0x88]
cmp ecx, 0
je 0x5e7ef0
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x5e7ee7
mov ax, word [esi]
mov word [ebx], ax
add esi, 2
add ebx, 2
dec ecx
jne 0x5e7edd
emms
jmp 0x5e889a
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6ea6e4]
mov dword [esp + 0xa4], edx
push esi
lea edi, [esp + 0x1a0]
mov esi, 0x6eaa00
rep movsd dword es:[edi], dword [esi]
movzx edi, byte [ebx + 0xe7]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
sar edi, 3
mov edx, dword [esp + eax*4 + 0x19c]
imul edx, edi
add edx, dword [ebx + 0xc8]
inc edx
mov dword [esp + 0x78], edx
mov cl, byte [ebx + 0x100]
mov eax, dword [esp + ecx*4 + 0x19c]
imul edi
add esi, eax
xor edx, edx
mov dword [esp + 0x7c], esi
mov dl, byte [ebx + 0x100]
mov ecx, dword [esp + edx*4 + 0x19c]
imul ecx, edi
mov dword [esp + 0x9c], ecx
mov eax, dword [ebx + 0xa4]
imul edi
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0x9c]
imul ebx, edi
cmp esi, dword [esp + 0xa0]
jae 0x5e889a
push edi
mov eax, dword [esp + 0x7c]
push eax
mov edx, dword [esp + 0x84]
push edx
call fcn.0056419c
add esp, 0xc
add dword [esp + 0x78], ebx
add dword [esp + 0x7c], ebx
add esi, ebx
cmp esi, dword [esp + 0xa0]
jb 0x5e7fa6
jmp 0x5e889a
mov dword [esp + 0xbc], 0x2020404
mov dword [esp + 0xc0], 0x1010102
mov dword [esp + 0xc4], 0x10101020
mov dword [esp + 0xc8], 0x4080808
mov dword [esp + 0xcc], 0x40808080
mov dword [esp + 0xd0], 0x20204040
mov ecx, dword [ebx + 0xc8]
inc ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], esi
mov eax, dword [esp]
not eax
mov dword [esp + 0xb4], eax
mov edx, dword [ebx + 0xa4]
and edx, 0xfffffff8
mov dword [esp + 0xb0], edx
mov ecx, dword [ebx + 0xa4]
and ecx, 7
cmp dword [0x6ea9e0], 0
mov dword [esp + 0xb8], ecx
je 0x5e8148
movd mm7, dword [esp + 0xb4]
psubb mm6, mm6
punpcklbw mm7, mm7
punpcklwd mm7, mm7
punpckldq mm7, mm7
movq mm0, qword [esp + 0xcc]
movq mm1, qword [esp + 0xc4]
movq mm2, qword [esp + 0xbc]
pand mm0, mm7
pand mm1, mm7
pand mm2, mm7
pcmpeqb mm0, mm6
pcmpeqb mm1, mm6
pcmpeqb mm2, mm6
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
cmp ecx, 0
je 0x5e8110
nop
nop
nop
nop
movq mm4, qword [esi]
pand mm4, mm0
movq mm6, mm0
movq mm7, qword [ebx]
pandn mm6, mm7
por mm4, mm6
movq qword [ebx], mm4
movq mm5, qword [esi + 8]
pand mm5, mm1
movq mm7, mm1
movq mm6, qword [ebx + 8]
pandn mm7, mm6
por mm5, mm7
movq qword [ebx + 8], mm5
movq mm6, qword [esi + 0x10]
pand mm6, mm2
movq mm4, mm2
movq mm7, qword [ebx + 0x10]
pandn mm4, mm7
por mm6, mm4
movq qword [ebx + 0x10], mm6
add esi, 0x18
add ebx, 0x18
sub ecx, 8
ja 0x5e80c0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0
je 0x5e8141
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x5e8138
mov ax, word [esi]
mov word [ebx], ax
xor eax, eax
mov al, byte [esi + 2]
mov byte [ebx + 2], al
add esi, 3
add ebx, 3
dec ecx
jne 0x5e8126
emms
jmp 0x5e889a
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6ea6e4]
mov dword [esp + 0xdc], edx
push esi
lea edi, [esp + 0x1bc]
mov esi, 0x6eaa1c
rep movsd dword es:[edi], dword [esi]
movzx edi, byte [ebx + 0xe7]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
sar edi, 3
mov edx, dword [esp + eax*4 + 0x1b8]
imul edx, edi
add edx, dword [ebx + 0xc8]
inc edx
mov dword [esp + 0xa8], edx
mov cl, byte [ebx + 0x100]
mov eax, dword [esp + ecx*4 + 0x1b8]
imul edi
add esi, eax
xor edx, edx
mov dword [esp + 0xac], esi
mov dl, byte [ebx + 0x100]
mov ecx, dword [esp + edx*4 + 0x1b8]
imul ecx, edi
mov dword [esp + 0xd4], ecx
mov eax, dword [ebx + 0xa4]
imul edi
mov dword [esp + 0xd8], eax
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd4]
imul ebx, edi
cmp esi, dword [esp + 0xd8]
jae 0x5e889a
push edi
mov eax, dword [esp + 0xac]
push eax
mov edx, dword [esp + 0xb4]
push edx
call fcn.0056419c
add esp, 0xc
add dword [esp + 0xa8], ebx
add dword [esp + 0xac], ebx
add esi, ebx
cmp esi, dword [esp + 0xd8]
jb 0x5e81fd
jmp 0x5e889a
mov dword [esp + 0xf4], 0x2020202
mov dword [esp + 0xf8], 0x1010101
mov dword [esp + 0xfc], 0x8080808
mov dword [esp + 0x100], 0x4040404
mov dword [esp + 0x104], 0x20202020
mov dword [esp + 0x108], 0x10101010
mov dword [esp + 0x10c], 0x80808080
mov dword [esp + 0x110], 0x40404040
mov ecx, dword [ebx + 0xc8]
inc ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], esi
mov eax, dword [esp]
not eax
mov dword [esp + 0xec], eax
mov edx, dword [ebx + 0xa4]
and edx, 0xfffffff8
mov dword [esp + 0xe8], edx
mov ecx, dword [ebx + 0xa4]
and ecx, 7
cmp dword [0x6ea9e0], 0
mov dword [esp + 0xf0], ecx
je 0x5e83da
movd mm7, dword [esp + 0xec]
psubb mm6, mm6
punpcklbw mm7, mm7
punpcklwd mm7, mm7
punpckldq mm7, mm7
movq mm0, qword [esp + 0x10c]
movq mm1, qword [esp + 0x104]
movq mm2, qword [esp + 0xfc]
movq mm3, qword [esp + 0xf4]
pand mm0, mm7
pand mm1, mm7
pand mm2, mm7
pand mm3, mm7
pcmpeqb mm0, mm6
pcmpeqb mm1, mm6
pcmpeqb mm2, mm6
pcmpeqb mm3, mm6
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
cmp ecx, 0
je 0x5e83ac
nop
nop
nop
nop
movq mm4, qword [esi]
pand mm4, mm0
movq mm6, mm0
movq mm7, qword [ebx]
pandn mm6, mm7
por mm4, mm6
movq qword [ebx], mm4
movq mm5, qword [esi + 8]
pand mm5, mm1
movq mm7, mm1
movq mm6, qword [ebx + 8]
pandn mm7, mm6
por mm5, mm7
movq qword [ebx + 8], mm5
movq mm6, qword [esi + 0x10]
pand mm6, mm2
movq mm4, mm2
movq mm7, qword [ebx + 0x10]
pandn mm4, mm7
por mm6, mm4
movq qword [ebx + 0x10], mm6
movq mm7, qword [esi + 0x18]
pand mm7, mm3
movq mm5, mm3
movq mm4, qword [ebx + 0x18]
pandn mm5, mm4
por mm7, mm5
movq qword [ebx + 0x18], mm7
add esi, 0x20
add ebx, 0x20
sub ecx, 8
ja 0x5e8344
mov ecx, dword [esp + 0xf0]
cmp ecx, 0
je 0x5e83d3
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x5e83ca
mov eax, dword [esi]
mov dword [ebx], eax
add esi, 4
add ebx, 4
dec ecx
jne 0x5e83c2
emms
jmp 0x5e889a
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6ea6e4]
mov dword [esp + 0x11c], edx
push esi
lea edi, [esp + 0x1d8]
mov esi, 0x6eaa38
rep movsd dword es:[edi], dword [esi]
movzx edi, byte [ebx + 0xe7]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
sar edi, 3
mov edx, dword [esp + eax*4 + 0x1d4]
imul edx, edi
add edx, dword [ebx + 0xc8]
inc edx
mov dword [esp + 0xe0], edx
mov cl, byte [ebx + 0x100]
mov eax, dword [esp + ecx*4 + 0x1d4]
imul edi
add esi, eax
xor edx, edx
mov dword [esp + 0xe4], esi
mov dl, byte [ebx + 0x100]
mov ecx, dword [esp + edx*4 + 0x1d4]
imul ecx, edi
mov dword [esp + 0x114], ecx
mov eax, dword [ebx + 0xa4]
imul edi
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x11c]
mov esi, dword [esp + 0x114]
imul ebx, edi
cmp esi, dword [esp + 0x118]
jae 0x5e889a
push edi
mov eax, dword [esp + 0xe4]
push eax
mov edx, dword [esp + 0xec]
push edx
call fcn.0056419c
add esp, 0xc
add dword [esp + 0xe0], ebx
add dword [esp + 0xe4], ebx
add esi, ebx
cmp esi, dword [esp + 0x118]
jb 0x5e848f
jmp 0x5e889a
mov dword [esp + 0x134], 0x1010202
mov dword [esp + 0x138], 0x1010101
mov dword [esp + 0x13c], 0x4040404
mov dword [esp + 0x140], 0x2020202
mov dword [esp + 0x144], 0x8080808
mov dword [esp + 0x148], 0x4040808
mov dword [esp + 0x14c], 0x10102020
mov dword [esp + 0x150], 0x10101010
mov dword [esp + 0x154], 0x40404040
mov dword [esp + 0x158], 0x20202020
mov dword [esp + 0x15c], 0x80808080
mov dword [esp + 0x160], 0x40408080
cmp dword [0x6ea9e0], 0
je 0x5e86d6
mov ecx, dword [ebx + 0xc8]
inc ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], esi
mov eax, dword [esp]
not eax
mov dword [esp + 0x12c], eax
mov edx, dword [ebx + 0xa4]
and edx, 0xfffffff8
mov dword [esp + 0x128], edx
mov ecx, dword [ebx + 0xa4]
and ecx, 7
mov dword [esp + 0x130], ecx
movd mm7, dword [esp + 0x12c]
psubb mm6, mm6
punpcklbw mm7, mm7
punpcklwd mm7, mm7
punpckldq mm7, mm7
movq mm0, qword [esp + 0x15c]
movq mm1, qword [esp + 0x154]
movq mm2, qword [esp + 0x14c]
movq mm3, qword [esp + 0x144]
movq mm4, qword [esp + 0x13c]
movq mm5, qword [esp + 0x134]
pand mm0, mm7
pand mm1, mm7
pand mm2, mm7
pand mm3, mm7
pand mm4, mm7
pand mm5, mm7
pcmpeqb mm0, mm6
pcmpeqb mm1, mm6
pcmpeqb mm2, mm6
pcmpeqb mm3, mm6
pcmpeqb mm4, mm6
pcmpeqb mm5, mm6
mov ecx, dword [esp + 0x128]
mov esi, dword [esp + 0x120]
mov ebx, dword [esp + 0x124]
cmp ecx, 0
je 0x5e86a8
movq mm7, qword [esi]
pand mm7, mm0
movq mm6, mm0
pandn mm6, qword [ebx]
por mm7, mm6
movq qword [ebx], mm7
movq mm6, qword [esi + 8]
pand mm6, mm1
movq mm7, mm1
pandn mm7, qword [ebx + 8]
por mm6, mm7
movq qword [ebx + 8], mm6
movq mm6, qword [esi + 0x10]
pand mm6, mm2
movq mm7, mm2
pandn mm7, qword [ebx + 0x10]
por mm6, mm7
movq qword [ebx + 0x10], mm6
movq mm7, qword [esi + 0x18]
pand mm7, mm3
movq mm6, mm3
pandn mm6, qword [ebx + 0x18]
por mm7, mm6
movq qword [ebx + 0x18], mm7
movq mm6, qword [esi + 0x20]
pand mm6, mm4
movq mm7, mm4
pandn mm7, qword [ebx + 0x20]
por mm6, mm7
movq qword [ebx + 0x20], mm6
movq mm7, qword [esi + 0x28]
pand mm7, mm5
movq mm6, mm5
pandn mm6, qword [ebx + 0x28]
por mm7, mm6
movq qword [ebx + 0x28], mm7
add esi, 0x30
add ebx, 0x30
sub ecx, 8
ja 0x5e861e
mov ecx, dword [esp + 0x130]
cmp ecx, 0
je 0x5e86cf
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x5e86c6
mov eax, dword [esi]
mov dword [ebx], eax
add esi, 4
add ebx, 4
dec ecx
jne 0x5e86be
emms
jmp 0x5e889a
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6ea6e4]
mov dword [esp + 0x16c], edx
push esi
lea edi, [esp + 0x1f4]
mov esi, 0x6eaa54
rep movsd dword es:[edi], dword [esi]
movzx edi, byte [ebx + 0xe7]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
sar edi, 3
mov edx, dword [esp + eax*4 + 0x1f0]
imul edx, edi
add edx, dword [ebx + 0xc8]
inc edx
mov dword [esp + 0x120], edx
mov cl, byte [ebx + 0x100]
mov eax, dword [esp + ecx*4 + 0x1f0]
imul edi
add esi, eax
xor edx, edx
mov dword [esp + 0x124], esi
mov dl, byte [ebx + 0x100]
mov ecx, dword [esp + edx*4 + 0x1f0]
imul ecx, edi
mov dword [esp + 0x164], ecx
mov eax, dword [ebx + 0xa4]
imul edi
mov dword [esp + 0x168], eax
mov ebx, dword [esp + 0x16c]
mov esi, dword [esp + 0x164]
imul ebx, edi
cmp esi, dword [esp + 0x168]
jae 0x5e889a
push edi
mov eax, dword [esp + 0x124]
push eax
mov edx, dword [esp + 0x12c]
push edx
call fcn.0056419c
add esp, 0xc
add dword [esp + 0x120], ebx
add dword [esp + 0x124], ebx
add esi, ebx
cmp esi, dword [esp + 0x168]
jb 0x5e878b
jmp 0x5e889a
push esi
lea edi, [esp + 0x210]
mov esi, 0x6eaa70
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop esi
mov al, byte [ebx + 0x100]
xor ecx, ecx
mov edx, dword [eax*4 + 0x6ea6e4]
xor eax, eax
mov dword [esp + 0x174], edx
movzx edi, byte [ebx + 0xe7]
mov al, byte [ebx + 0x100]
mov cl, byte [ebx + 0x100]
sar edi, 3
mov ebp, dword [esp + eax*4 + 0x20c]
xor eax, eax
imul ebp, edi
mov al, byte [ebx + 0x100]
add ebp, dword [ebx + 0xc8]
inc ebp
mov edx, dword [esp + eax*4 + 0x20c]
imul edx, edi
add esi, edx
mov eax, dword [esp + ecx*4 + 0x20c]
imul edi
mov dword [esp + 0x178], eax
mov edx, dword [ebx + 0xa4]
imul edx, edi
mov dword [esp + 0x17c], edx
mov ebx, dword [esp + 0x174]
mov eax, dword [esp + 0x178]
imul ebx, edi
mov dword [esp + 0x170], eax
mov edx, dword [esp + 0x170]
cmp edx, dword [esp + 0x17c]
jae 0x5e889a
push edi
push ebp
push esi
call fcn.0056419c
add esp, 0xc
add ebp, ebx
add esi, ebx
add dword [esp + 0x170], ebx
mov ecx, dword [esp + 0x170]
cmp ecx, dword [esp + 0x17c]
jb 0x5e8874
add esp, 0x228
pop ebp
pop edi
pop esi
pop ebx
ret