Function at 0x44863c
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 [0x6b56f8], 2
jne 0x448660
call fcn.00448624
mov dword [0x6b56f8], eax
cmp dword [esp], 0xff
jne 0x448694
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.0050d130
add esp, 0xc
jmp 0x449526
xor ecx, ecx
mov cl, byte [ebx + 0xe7]
cmp ecx, 0x10
jg 0x4486c8
je 0x448a5f
dec ecx
je 0x4486e8
dec ecx
je 0x44878a
sub ecx, 2
je 0x44882c
sub ecx, 4
je 0x4488ce
jmp 0x44944e
sub ecx, 0x18
je 0x448c60
sub ecx, 8
je 0x448ec0
sub ecx, 0x10
je 0x449152
jmp 0x44944e
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 0x44877d
test dword [esp], esi
je 0x448756
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 0x44876a
mov eax, dword [esp + 0x10]
inc dword [esp + 4]
inc dword [esp + 8]
jmp 0x44876e
add eax, dword [esp + 0xc]
cmp esi, 1
jne 0x44877a
mov esi, 0x80
jmp 0x44877c
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x44871a
jmp 0x449526
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 0x44881f
test dword [esp], esi
je 0x4487f8
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 0x44880c
mov eax, dword [esp + 0x24]
inc dword [esp + 0x1c]
inc dword [esp + 0x20]
jmp 0x448810
add eax, dword [esp + 0x2c]
cmp esi, 1
jne 0x44881c
mov esi, 0x80
jmp 0x44881e
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x4487bc
jmp 0x449526
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 0x4488c1
test dword [esp], esi
je 0x44889a
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 0x4488ae
mov eax, dword [esp + 0x3c]
inc dword [esp + 0x34]
inc dword [esp + 0x38]
jmp 0x4488b2
add eax, dword [esp + 0x44]
cmp esi, 1
jne 0x4488be
mov esi, 0x80
jmp 0x4488c0
sar esi, 1
inc edi
cmp edi, dword [ebx + 0xa4]
jb 0x44885e
jmp 0x449526
mov dword [esp + 0x64], 0x10204080
mov dword [esp + 0x68], 0x1020408
cmp dword [0x6b56f8], 0
je 0x44899a
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 0x448973
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 0x448956
mov ecx, dword [esp + 0x5c]
cmp ecx, 0
je 0x448993
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x44898e
mov al, byte [esi]
mov byte [ebx], al
inc esi
inc ebx
dec ecx
jne 0x448986
emms
jmp 0x449526
xor edx, edx
mov dl, byte [ebx + 0x100]
mov ecx, dword [edx*4 + 0x6b53fc]
mov dword [esp + 0x74], ecx
push esi
lea edi, [esp + 0x184]
mov esi, 0x6b56fc
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 0x449526
push edi
mov eax, dword [esp + 0x50]
push eax
mov edx, dword [esp + 0x58]
push edx
call fcn.0050d130
add esp, 0xc
add dword [esp + 0x4c], ebx
add dword [esp + 0x50], ebx
add esi, ebx
cmp esi, dword [esp + 0x70]
jb 0x448a37
jmp 0x449526
mov dword [esp + 0x8c], 0x4040808
mov dword [esp + 0x90], 0x1010202
mov dword [esp + 0x94], 0x40408080
mov dword [esp + 0x98], 0x10102020
cmp dword [0x6b56f8], 0
je 0x448b83
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 0x448b53
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 0x448b1b
mov ecx, dword [esp + 0x88]
cmp ecx, 0
je 0x448b7c
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x448b73
mov ax, word [esi]
mov word [ebx], ax
add esi, 2
add ebx, 2
dec ecx
jne 0x448b69
emms
jmp 0x449526
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6b53fc]
mov dword [esp + 0xa4], edx
push esi
lea edi, [esp + 0x1a0]
mov esi, 0x6b5718
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 0x449526
push edi
mov eax, dword [esp + 0x7c]
push eax
mov edx, dword [esp + 0x84]
push edx
call fcn.0050d130
add esp, 0xc
add dword [esp + 0x78], ebx
add dword [esp + 0x7c], ebx
add esi, ebx
cmp esi, dword [esp + 0xa0]
jb 0x448c32
jmp 0x449526
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 [0x6b56f8], 0
mov dword [esp + 0xb8], ecx
je 0x448dd4
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 0x448d9c
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 0x448d4c
mov ecx, dword [esp + 0xb8]
cmp ecx, 0
je 0x448dcd
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x448dc4
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 0x448db2
emms
jmp 0x449526
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6b53fc]
mov dword [esp + 0xdc], edx
push esi
lea edi, [esp + 0x1bc]
mov esi, 0x6b5734
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 0x449526
push edi
mov eax, dword [esp + 0xac]
push eax
mov edx, dword [esp + 0xb4]
push edx
call fcn.0050d130
add esp, 0xc
add dword [esp + 0xa8], ebx
add dword [esp + 0xac], ebx
add esi, ebx
cmp esi, dword [esp + 0xd8]
jb 0x448e89
jmp 0x449526
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 [0x6b56f8], 0
mov dword [esp + 0xf0], ecx
je 0x449066
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 0x449038
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 0x448fd0
mov ecx, dword [esp + 0xf0]
cmp ecx, 0
je 0x44905f
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x449056
mov eax, dword [esi]
mov dword [ebx], eax
add esi, 4
add ebx, 4
dec ecx
jne 0x44904e
emms
jmp 0x449526
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6b53fc]
mov dword [esp + 0x11c], edx
push esi
lea edi, [esp + 0x1d8]
mov esi, 0x6b5750
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 0x449526
push edi
mov eax, dword [esp + 0xe4]
push eax
mov edx, dword [esp + 0xec]
push edx
call fcn.0050d130
add esp, 0xc
add dword [esp + 0xe0], ebx
add dword [esp + 0xe4], ebx
add esi, ebx
cmp esi, dword [esp + 0x118]
jb 0x44911b
jmp 0x449526
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 [0x6b56f8], 0
je 0x449362
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 0x449334
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 0x4492aa
mov ecx, dword [esp + 0x130]
cmp ecx, 0
je 0x44935b
nop
nop
nop
nop
mov edx, dword [esp]
shl edx, 0x18
shl edx, 1
jae 0x449352
mov eax, dword [esi]
mov dword [ebx], eax
add esi, 4
add ebx, 4
dec ecx
jne 0x44934a
emms
jmp 0x449526
xor eax, eax
mov ecx, 7
mov al, byte [ebx + 0x100]
mov edx, dword [eax*4 + 0x6b53fc]
mov dword [esp + 0x16c], edx
push esi
lea edi, [esp + 0x1f4]
mov esi, 0x6b576c
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 0x449526
push edi
mov eax, dword [esp + 0x124]
push eax
mov edx, dword [esp + 0x12c]
push edx
call fcn.0050d130
add esp, 0xc
add dword [esp + 0x120], ebx
add dword [esp + 0x124], ebx
add esi, ebx
cmp esi, dword [esp + 0x168]
jb 0x449417
jmp 0x449526
push esi
lea edi, [esp + 0x210]
mov esi, 0x6b5788
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 + 0x6b53fc]
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 0x449526
push edi
push ebp
push esi
call fcn.0050d130
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 0x449500
add esp, 0x228
pop ebp
pop edi
pop esi
pop ebx
ret