Function at 0x47d460
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov esi, edx
mov dword [esp + 0x54], esi
mov ebp, ecx
push 0
push 8
push ebp
mov dword [esp + 0x70], ebp
call fcn.00489f05
add esp, 0xc
lea eax, [esp + 0x48]
push ebp
push 4
push 1
push eax
call fcn.0048a645
push ebp
call fcn.00489f20
add esp, 0x14
cmp esi, 0xc
jb 0x47d4cc
xor ebx, ebx
xor edx, edx
push ebx
xor eax, eax
mov dword [esp + 0x5c], edx
push 0xc
push ebp
xor edi, edi
mov dword [esp + 0x50], eax
call fcn.00489f05
add esp, 0xc
push ebp
call fcn.00490094
add esp, 4
test eax, eax
je 0x47d4e8
push str.Error_loading_sample:_The_sample_is_not_supported_or_is_invalid_
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x54]
push ebp
call fcn.00489c23
lea ecx, [esi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47d5f6
push ebp
push 1
lea eax, [esp + 0x64]
push 4
push eax
call fcn.0048a645
push ebp
call fcn.00490094
add esp, 0x14
test eax, eax
jne 0x47d5f6
push ebp
push 1
lea eax, [esp + 0x58]
push 4
push eax
call fcn.0048a645
push ebp
call fcn.00490094
add esp, 0x14
test eax, eax
jne 0x47d5f6
mov ecx, dword [esp + 0x5c]
mov esi, ecx
mov eax, ecx
and esi, 0xff0000
shr eax, 0x10
or esi, eax
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shr esi, 8
mov ecx, dword [esp + 0x50]
mov edx, ecx
shl eax, 8
and edx, 0xff0000
or esi, eax
mov eax, ecx
shr eax, 0x10
or edx, eax
mov dword [esp + 0x5c], esi
mov eax, ecx
shr edx, 8
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or edx, eax
mov dword [esp + 0x50], edx
cmp esi, 0x434f4d4d
je 0x47d5b9
cmp esi, 0x53534e44
jne 0x47d5cc
push ebp
call fcn.00489c23
mov ebx, dword [esp + 0x54]
mov esi, eax
add esp, 4
mov dword [esp + 0x44], esi
mov edx, ebx
jmp 0x47d5d0
push ebp
call fcn.00489c23
mov edi, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x58], eax
mov edx, edi
mov esi, dword [esp + 0x44]
mov ecx, edx
and ecx, 1
push 1
add ecx, edx
push ecx
push ebp
call fcn.00489f05
add esp, 0xc
push ebp
call fcn.00490094
add esp, 4
test eax, eax
je 0x47d4e4
jmp 0x47d5fa
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
test edx, edx
je 0x47d4cc
cmp edi, 0x12
jb 0x47d4cc
test esi, esi
je 0x47d4cc
mov eax, dword [esp + 0x54]
sub eax, esi
test ebx, ebx
mov ecx, eax
mov dword [esp + 0x58], eax
cmovne ecx, ebx
push 0
push edx
push ebp
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmovbe eax, ecx
mov dword [esp + 0x64], eax
call fcn.00489f05
add esp, 0xc
lea eax, [esp + 0x40]
push ebp
push 1
push 2
push eax
call fcn.0048a645
movzx eax, word [esp + 0x50]
push 1
rol ax, 8
movzx eax, ax
push 4
push ebp
mov dword [esp + 0x5c], eax
call fcn.00489f05
add esp, 0x1c
lea eax, [esp + 0x4c]
push ebp
push 1
push 2
push eax
call fcn.0048a645
movzx eax, word [esp + 0x5c]
rol ax, 8
push ebp
movzx eax, ax
push 0xa
mov dword [esp + 0x64], eax
lea eax, [esp + 0x8c]
push 1
push eax
call fcn.0048a645
mov eax, dword [esp + 0x60]
add esp, 0x20
cmp ax, 1
je 0x47d6ce
cmp ax, 2
je 0x47d6ce
push str.Error_loading_sample:_Unsupported_amounts_of_channels_
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor cl, cl
mov byte [esp + 0x3f], 1
mov byte [esp + 0x3e], cl
cmp edi, 0x12
jbe 0x47d731
push ebp
push 4
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0048a645
lea eax, [esp + 0x58]
add esp, 0x10
cmp dword [eax], 0x20776172
jne 0x47d707
mov cl, byte [esp + 0x3e]
mov byte [esp + 0x3f], 0
jmp 0x47d731
lea eax, [esp + 0x48]
cmp dword [eax], 0x32334c46
je 0x47d72b
cmp dword [eax], 0x32336c66
je 0x47d72b
cmp dword [eax], 0x34364c46
je 0x47d72b
cmp dword [eax], 0x34366c66
jne 0x47d757
mov cl, 1
mov byte [esp + 0x3e], cl
mov eax, dword [esp + 0x4c]
cmp ax, 8
je 0x47d76f
cmp ax, 0x10
je 0x47d76f
cmp ax, 0x18
je 0x47d76f
cmp ax, 0x20
je 0x47d76f
test cl, cl
je 0x47d757
cmp ax, 0x40
je 0x47d76f
push str.Error_loading_sample:_Unsupported_AIFF_type_
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esp + 0x74]
sub esp, 8
mov eax, dword [esp + 0x82]
and ecx, 0x7f
mov ebx, dword [esp + 0x7e]
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x7d]
shl ecx, 8
or ecx, eax
sub ecx, 0x3fff
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0048f8fd
xor edx, edx
mov ecx, ebx
and ecx, 0x7f
mov eax, ebx
shld edx, ecx, 0x10
and eax, 0xff00
xor esi, esi
shl ecx, 0x10
add esp, 8
or ecx, eax
mov eax, ebx
shld edx, ecx, 0x10
and eax, 0xff0000
shl ecx, 0x10
or ecx, eax
mov eax, ebx
shld edx, ecx, 0x10
and eax, 0xff000000
shl ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x54]
mov edi, eax
shrd ebx, eax, 0x10
and edi, 0xff0000
shr eax, 0x10
or esi, ebx
mov ebx, dword [esp + 0x54]
or edi, eax
shrd esi, edi, 0x10
mov eax, ebx
shr edi, 0x10
and eax, 0xff00
or edi, eax
movzx eax, bl
shrd esi, edi, 0x10
shld edx, ecx, 8
shr edi, 0x10
or edi, eax
shl ecx, 8
shrd esi, edi, 8
shr edi, 8
or ecx, esi
or edx, edi
call fcn.004a7500
mulsd xmm0, qword [0x4e2a28]
sub esp, 8
addsd xmm0, qword [0x4e2b20]
movsd qword [esp + 0x70], xmm0
fmul qword [esp + 0x70]
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp], xmm0
call fcn.0048f9c7
add esp, 8
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
call fcn.004a73d1
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
push 0
push eax
push ebp
call fcn.00489f05
add esp, 0xc
push ebp
push 1
push 4
lea eax, [esp + 0x6c]
push eax
call fcn.0048a645
add esp, 0x10
cmp dword [esp + 0x60], 0
ja 0x47d4cc
push 1
push 4
push ebp
call fcn.00489f05
mov ebp, dword [esp + 0x64]
add esp, 0xc
mov esi, dword [esp + 0x64]
or ebx, 0xffffffff
mov ecx, esi
mov dword [esp + 0x54], ebx
add ebp, 0xfffffff8
call fcn.0047e7f0
test al, al
je 0x47d8f1
push 0
push str.This_is_a_stereo_sample...
push str.System_request
push 4
call dword [0x54e484]
movzx ebx, ax
add esp, 0x10
mov dword [esp + 0x54], ebx
cmp byte [esp + 0x3e], 0
mov eax, dword [esp + 0x4c]
jne 0x47e038
cmp ax, 8
jne 0x47da40
lea eax, [ebp + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e3ce
push esi
push 1
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a645
add esp, 0x10
cmp eax, 1
jne 0x47e40a
cmp byte [esp + 0x3f], 0
mov edx, dword [0x54e67c]
jne 0x47d9b9
xor eax, eax
test ebp, ebp
je 0x47d9b9
cmp ebp, 0x40
jb 0x47d9ab
movaps xmm2, xmmword [0x4e2db0]
mov ecx, ebp
and ecx, 0xffffffc0
movups xmm0, xmmword [edx + eax]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [edx + eax], xmm1
movups xmm0, xmmword [edx + eax + 0x10]
movaps xmm1, xmm2
pxor xmm0, xmm2
movups xmmword [edx + eax + 0x10], xmm0
movups xmm0, xmmword [edx + eax + 0x20]
pxor xmm1, xmm0
movups xmmword [edx + eax + 0x20], xmm1
movups xmm0, xmmword [edx + eax + 0x30]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [edx + eax + 0x30], xmm1
add eax, 0x40
cmp eax, ecx
jb 0x47d965
cmp eax, ebp
jae 0x47d9b9
nop
xor byte [eax + edx], 0x80
inc eax
cmp eax, ebp
jb 0x47d9b0
cmp word [esp + 0x40], 2
jne 0x47e785
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47da1d
lea edi, [ebp - 1]
sub eax, 1
je 0x47d9fe
xor esi, esi
test edi, edi
je 0x47d9f5
nop dword [eax]
movsx ecx, byte [edx + esi*2 + 1]
movsx eax, byte [edx + esi*2]
add ecx, eax
sar ecx, 1
mov byte [esi + edx], cl
inc esi
cmp esi, edi
jb 0x47d9e0
mov byte [esi + edx], 0
jmp 0x47e785
xor ecx, ecx
test edi, edi
je 0x47da14
lea esi, [edx + 1]
mov al, byte [esi]
lea esi, [esi + 2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, edi
jb 0x47da07
mov byte [ecx + edx], 0
jmp 0x47e785
mov ecx, 1
cmp ebp, ecx
jbe 0x47e785
nop word [eax + eax]
mov al, byte [edx + ecx*2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebp
jb 0x47da30
jmp 0x47e785
cmp ax, 0x10
jne 0x47dbc9
shr ebp, 1
lea eax, [ebp*2 + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e3ce
push esi
push 2
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a645
add esp, 0x10
cmp eax, 2
jne 0x47e40a
mov edx, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47db3a
cmp ebp, 0x20
jb 0x47db16
mov eax, 8
mov ecx, ebp
and ecx, 0xffffffe0
movd xmm2, eax
lea eax, [edx + 0x20]
nop dword [eax]
movups xmm1, xmmword [eax - 0x20]
add esi, 0x20
lea eax, [eax + 0x40]
movaps xmm0, xmm1
psrlw xmm0, xmm2
psllw xmm1, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x60], xmm0
movups xmm1, xmmword [eax - 0x50]
movaps xmm0, xmm1
psrlw xmm0, xmm2
psllw xmm1, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x50], xmm0
movups xmm1, xmmword [eax - 0x40]
movaps xmm0, xmm1
psrlw xmm0, xmm2
psllw xmm1, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x40], xmm0
movups xmm1, xmmword [eax - 0x30]
movaps xmm0, xmm1
psrlw xmm0, xmm2
psllw xmm1, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
cmp esi, ecx
jb 0x47dab0
cmp esi, ebp
jae 0x47db3a
nop word [eax + eax]
movzx ecx, word [edx + esi*2]
mov ax, cx
shl ecx, 8
shr ax, 8
or ax, cx
mov word [edx + esi*2], ax
inc esi
cmp esi, ebp
jb 0x47db20
cmp word [esp + 0x40], 2
jne 0x47e77e
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47dbaa
lea edi, [ebp - 1]
sub eax, 1
je 0x47db81
xor esi, esi
test edi, edi
je 0x47db76
nop
movsx ecx, word [edx + esi*4 + 2]
movsx eax, word [edx + esi*4]
add ecx, eax
sar ecx, 1
mov word [edx + esi*2], cx
inc esi
cmp esi, edi
jb 0x47db60
xor eax, eax
mov word [edx + esi*2], ax
jmp 0x47e77e
xor ecx, ecx
test edi, edi
je 0x47db9f
lea esi, [edx + 2]
nop word [eax + eax]
mov ax, word [esi]
lea esi, [esi + 4]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, edi
jb 0x47db90
xor eax, eax
mov word [edx + ecx*2], ax
jmp 0x47e77e
mov ecx, 1
cmp ebp, ecx
jbe 0x47e77e
mov ax, word [edx + ecx*4]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47dbb7
jmp 0x47e77e
cmp ax, 0x18
jne 0x47ddc8
mov eax, 0xaaaaaaab
mul ebp
mov ebp, edx
shr ebp, 1
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e3ce
push esi
add eax, 0xf
push 3
mov dword [0x54e67c], eax
add eax, ebp
push ebp
push eax
call fcn.0048a645
add esp, 0x10
cmp eax, 3
jne 0x47e40a
mov edi, dword [0x54e67c]
xor esi, esi
lea edx, [edi + ebp]
test ebp, ebp
je 0x47dc53
nop word [eax + eax]
movzx ecx, byte [edx]
lea edx, [edx + 3]
movzx eax, byte [edx - 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
shl ecx, 8
mov dword [edi + esi*4], ecx
inc esi
cmp esi, ebp
jb 0x47dc30
cmp word [esp + 0x40], 2
jne 0x47dce1
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47dccd
sub eax, 1
je 0x47dcab
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47dca2
mov ebp, eax
mov eax, dword [edi + ebx*8 + 4]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8]
cdq
add esi, eax
adc ecx, edx
shrd esi, ecx, 1
mov dword [edi + ebx*4], esi
inc ebx
cmp ebx, ebp
jb 0x47dc81
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47dce1
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47dcc4
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47dcb7
mov dword [edi + ecx*4], 0
jmp 0x47dce1
mov ecx, 1
cmp ebp, ecx
jbe 0x47dce1
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47dcd6
mov edx, ebp
mov ecx, edi
call fcn.0043e310
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e77e
cmp ebp, 0x10
jb 0x47ddad
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47dd1b
cmp edx, edi
jae 0x47ddad
mov eax, 0x10
lea edx, [edi + 0x20]
mov ebx, ebp
and ebx, 0xfffffff0
movd xmm1, eax
lea eax, [esi + 0x10]
nop
movups xmm0, xmmword [edx - 0x20]
add ecx, 0x10
lea edx, [edx + 0x40]
lea eax, [eax + 0x20]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x30], xmm0
movups xmm0, xmmword [edx - 0x50]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x28], xmm0
movups xmm0, xmmword [edx - 0x40]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x20], xmm0
movups xmm0, xmmword [edx - 0x30]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x18], xmm0
cmp ecx, ebx
jb 0x47dd30
cmp ecx, ebp
jae 0x47e77e
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47ddb5
jmp 0x47e77e
cmp ax, 0x20
jne 0x47e785
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e3ce
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a645
add esp, 0x10
cmp eax, 4
jne 0x47e40a
mov edi, dword [0x54e67c]
lea ecx, [eax + 0xc]
xor esi, esi
test ebp, ebp
je 0x47debf
cmp ebp, eax
jb 0x47de8c
movaps xmm5, xmmword [0x4e2cf0]
mov eax, ebp
movaps xmm6, xmmword [0x4e2ce0]
and eax, 0xfffffffc
movd xmm3, ecx
mov ecx, 8
movd xmm4, ecx
nop word [eax + eax]
movups xmm1, xmmword [edi + esi*4]
movaps xmm2, xmm6
movaps xmm0, xmm1
pand xmm2, xmm1
pslld xmm0, xmm3
por xmm2, xmm0
movaps xmm0, xmm5
pand xmm0, xmm1
psrld xmm1, xmm3
pslld xmm2, xmm4
por xmm0, xmm1
psrld xmm0, xmm4
por xmm2, xmm0
movups xmmword [edi + esi*4], xmm2
add esi, 4
cmp esi, eax
jb 0x47de50
cmp esi, ebp
jae 0x47debf
mov ecx, dword [edi + esi*4]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov dword [edi + esi*4], edx
inc esi
cmp esi, ebp
jb 0x47de90
cmp word [esp + 0x40], 2
jne 0x47df50
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47df3c
sub eax, 1
je 0x47df1a
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47df11
mov ebp, eax
nop dword [eax]
mov eax, dword [edi + ebx*8 + 4]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8]
cdq
add esi, eax
adc ecx, edx
shrd esi, ecx, 1
mov dword [edi + ebx*4], esi
inc ebx
cmp ebx, ebp
jb 0x47def0
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47df50
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47df33
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47df26
mov dword [edi + ecx*4], 0
jmp 0x47df50
mov ecx, 1
cmp ebp, ecx
jbe 0x47df50
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47df45
mov edx, ebp
mov ecx, edi
call fcn.0043e310
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e77e
cmp ebp, 0x10
jb 0x47e01d
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47df8a
cmp edx, edi
jae 0x47e01d
mov eax, 0x10
lea edx, [edi + 0x20]
mov ebx, ebp
and ebx, 0xfffffff0
movd xmm1, eax
lea eax, [esi + 0x10]
nop
movups xmm0, xmmword [edx - 0x20]
add ecx, 0x10
lea edx, [edx + 0x40]
lea eax, [eax + 0x20]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x30], xmm0
movups xmm0, xmmword [edx - 0x50]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x28], xmm0
movups xmm0, xmmword [edx - 0x40]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x20], xmm0
movups xmm0, xmmword [edx - 0x30]
psrad xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x18], xmm0
cmp ecx, ebx
jb 0x47dfa0
cmp ecx, ebp
jae 0x47e77e
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e025
jmp 0x47e77e
cmp ax, 0x20
jne 0x47e3a8
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e3ce
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a645
add esp, 0x10
cmp eax, 4
jne 0x47e40a
mov edi, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47e12f
cmp ebp, eax
jb 0x47e0fc
movaps xmm5, xmmword [0x4e2cf0]
mov ecx, 0x10
movaps xmm6, xmmword [0x4e2ce0]
mov eax, ebp
and eax, 0xfffffffc
movd xmm3, ecx
mov ecx, 8
movd xmm4, ecx
nop dword [eax]
movups xmm1, xmmword [edi + esi*4]
movaps xmm2, xmm1
movaps xmm0, xmm1
pand xmm0, xmm6
pslld xmm2, xmm3
por xmm2, xmm0
movaps xmm0, xmm1
psrld xmm0, xmm3
pand xmm1, xmm5
por xmm0, xmm1
pslld xmm2, xmm4
psrld xmm0, xmm4
por xmm2, xmm0
movups xmmword [edi + esi*4], xmm2
add esi, 4
cmp esi, eax
jb 0x47e0c0
cmp esi, ebp
jae 0x47e12f
mov ecx, dword [edi + esi*4]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov dword [edi + esi*4], edx
inc esi
cmp esi, ebp
jb 0x47e100
cmp word [esp + 0x40], 2
mov esi, dword [0x54e67c]
jne 0x47e2c2
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47e266
lea ebx, [ebp - 1]
sub eax, 1
je 0x47e205
movss xmm1, dword [0x4e2a70]
xor ecx, ecx
cmp ebx, 4
jb 0x47e1d5
lea edi, [ebx - 4]
shr edi, 2
lea edx, [esi + 8]
inc edi
lea eax, [esi + 0xc]
lea ecx, [edi*4]
nop
movss xmm0, dword [eax - 0xc]
addss xmm0, dword [eax - 8]
mulss xmm0, xmm1
movss dword [edx - 8], xmm0
movss xmm0, dword [eax - 4]
addss xmm0, dword [eax]
mulss xmm0, xmm1
movss dword [edx - 4], xmm0
movss xmm0, dword [eax + 8]
addss xmm0, dword [eax + 4]
mulss xmm0, xmm1
movss dword [edx], xmm0
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [eax + 0xc]
add eax, 0x20
mulss xmm0, xmm1
movss dword [edx + 4], xmm0
add edx, 0x10
sub edi, 1
jne 0x47e180
cmp ecx, ebx
jae 0x47e1f9
nop dword [eax]
movss xmm0, dword [esi + ecx*8 + 4]
addss xmm0, dword [esi + ecx*8]
mulss xmm0, xmm1
movss dword [esi + ecx*4], xmm0
inc ecx
cmp ecx, ebx
jb 0x47e1e0
mov dword [esi + ecx*4], 0
jmp 0x47e2c2
xor edi, edi
cmp ebx, 4
jb 0x47e246
add ebx, 0xfffffffc
lea ecx, [esi + 8]
shr ebx, 2
lea edx, [esi + 0xc]
inc ebx
lea edi, [ebx*4]
mov eax, dword [edx - 8]
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x18], eax
lea edx, [edx + 0x20]
mov eax, dword [edx - 0x20]
mov dword [ecx - 0x14], eax
mov eax, dword [edx - 0x18]
mov dword [ecx - 0x10], eax
mov eax, dword [edx - 0x10]
mov dword [ecx - 0xc], eax
sub ebx, 1
jne 0x47e220
lea ebx, [ebp - 1]
cmp edi, ebx
jae 0x47e25d
lea ecx, [esi + 4]
lea ecx, [ecx + edi*8]
mov eax, dword [ecx]
lea ecx, [ecx + 8]
mov dword [esi + edi*4], eax
inc edi
cmp edi, ebx
jb 0x47e250
mov dword [esi + edi*4], 0
jmp 0x47e2c2
mov ecx, 1
cmp ebp, ecx
jbe 0x47e2c2
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e2b3
lea ebx, [ebp - 5]
shr ebx, 2
lea edx, [esi + 0xc]
inc ebx
lea edi, [esi + 0x18]
lea ecx, [ebx*4 + 1]
nop dword [eax + eax]
mov eax, dword [edi - 0x10]
lea edi, [edi + 0x20]
mov dword [edx - 8], eax
lea edx, [edx + 0x10]
mov eax, dword [edi - 0x28]
mov dword [edx - 0x14], eax
mov eax, dword [edi - 0x20]
mov dword [edx - 0x10], eax
mov eax, dword [edi - 0x18]
mov dword [edx - 0xc], eax
sub ebx, 1
jne 0x47e290
cmp ecx, ebp
jae 0x47e2c2
mov eax, dword [esi + ecx*8]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47e2b7
mov edx, ebp
mov ecx, esi
call fcn.0043e470
mov edi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e77e
cmp ebp, 0x10
jb 0x47e38d
lea eax, [esi - 4]
lea eax, [eax + ebp*4]
lea edx, [edi - 2]
lea edx, [edx + ebp*2]
cmp edi, eax
ja 0x47e2fc
cmp edx, esi
jae 0x47e38d
mov ebx, ebp
lea eax, [edi + 0x10]
and ebx, 0xfffffff0
lea edx, [esi + 0x20]
nop word [eax + eax]
movups xmm0, xmmword [edx - 0x20]
add ecx, 0x10
lea edx, [edx + 0x40]
lea eax, [eax + 0x20]
cvttps2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x30], xmm0
movups xmm0, xmmword [edx - 0x50]
cvttps2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x28], xmm0
movups xmm0, xmmword [edx - 0x40]
cvttps2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x20], xmm0
movups xmm0, xmmword [edx - 0x30]
cvttps2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [eax - 0x18], xmm0
cmp ecx, ebx
jb 0x47e310
cmp ecx, ebp
jae 0x47e77e
cvttss2si eax, dword [esi + ecx*4]
mov word [edi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e395
jmp 0x47e77e
cmp ax, 0x40
jne 0x47e785
shr ebp, 3
lea eax, [ebp*8 + 0x1f]
push eax
call fcn.00489595
add esp, 4
mov dword [0x54e680], eax
test eax, eax
jne 0x47e3f0
push str.Not_enough_memory_
mov dword [0x54e67c], 0
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 8
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a645
add esp, 0x10
cmp eax, 8
je 0x47e422
push str.General_I_O_error_during_loading__Is_the_file_in_use_
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [0x54e67c]
xor eax, eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x58], eax
test ebp, ebp
je 0x47e4d7
nop word [eax + eax]
mov edx, dword [ebx + eax*8]
xor ecx, ecx
mov ebx, dword [ebx + eax*8 + 4]
mov esi, edx
mov edi, ebx
mov eax, edx
shld edi, esi, 0x10
and eax, 0xff00
shl esi, 0x10
or esi, eax
mov eax, edx
shld edi, esi, 0x10
and eax, 0xff0000
shl esi, 0x10
or esi, eax
mov eax, edx
shld edi, esi, 0x10
and eax, 0xff000000
shl esi, 0x10
or esi, eax
mov eax, ebx
shrd edx, eax, 0x10
movzx eax, bl
or ecx, eax
and edx, 0xff000000
shld edi, esi, 8
mov eax, ebx
sar ebx, 8
shl esi, 8
and ebx, 0xff00
shrd edx, ecx, 8
sar eax, 0x18
or esi, edx
movzx eax, al
or esi, eax
shr ecx, 8
mov eax, dword [esp + 0x58]
or esi, ebx
mov ebx, dword [esp + 0x64]
or edi, ecx
mov dword [ebx + eax*8], esi
mov dword [ebx + eax*8 + 4], edi
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x47e440
mov ebx, dword [0x54e67c]
cmp word [esp + 0x40], 2
jne 0x47e6a1
mov eax, dword [esp + 0x54]
cwde
shr ebp, 1
sub eax, 1
je 0x47e62c
lea edi, [ebp - 1]
sub eax, 1
je 0x47e5a9
movsd xmm1, qword [0x4e2b10]
xor edx, edx
cmp edi, 4
jb 0x47e577
lea esi, [edi - 4]
shr esi, 2
lea ecx, [ebx + 0x10]
inc esi
lea eax, [ebx + 0x18]
lea edx, [esi*4]
movsd xmm0, qword [eax - 0x18]
addsd xmm0, qword [eax - 0x10]
mulsd xmm0, xmm1
movsd qword [ecx - 0x10], xmm0
movsd xmm0, qword [eax - 8]
addsd xmm0, qword [eax]
mulsd xmm0, xmm1
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [eax + 0x10]
addsd xmm0, qword [eax + 8]
mulsd xmm0, xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [eax + 0x20]
addsd xmm0, qword [eax + 0x18]
add eax, 0x40
mulsd xmm0, xmm1
movsd qword [ecx + 8], xmm0
add ecx, 0x20
sub esi, 1
jne 0x47e522
cmp edx, edi
jae 0x47e59c
mov eax, edx
shl eax, 4
add eax, ebx
movsd xmm0, qword [eax + 8]
addsd xmm0, qword [eax]
add eax, 0x10
mulsd xmm0, xmm1
movsd qword [ebx + edx*8], xmm0
inc edx
cmp edx, edi
jb 0x47e582
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e6a1
xor edx, edx
cmp edi, 4
jb 0x47e603
lea esi, [edi - 4]
shr esi, 2
lea eax, [ebx + 0x10]
inc esi
lea ecx, [ebx + 0x18]
lea edx, [esi*4]
nop dword [eax]
nop dword [eax + eax]
movsd xmm0, qword [ecx - 0x10]
lea eax, [eax + 0x20]
movsd qword [eax - 0x30], xmm0
lea ecx, [ecx + 0x40]
movsd xmm0, qword [ecx - 0x40]
movsd qword [eax - 0x28], xmm0
movsd xmm0, qword [ecx - 0x30]
movsd qword [eax - 0x20], xmm0
movsd xmm0, qword [ecx - 0x20]
movsd qword [eax - 0x18], xmm0
sub esi, 1
jne 0x47e5d0
cmp edx, edi
jae 0x47e59c
mov eax, edx
shl eax, 4
add eax, 8
add eax, ebx
movsd xmm0, qword [eax]
lea eax, [eax + 0x10]
movsd qword [ebx + edx*8], xmm0
inc edx
cmp edx, edi
jb 0x47e611
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e6a1
mov edx, 1
cmp ebp, edx
jbe 0x47e6a1
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e684
lea esi, [ebp - 5]
shr esi, 2
lea eax, [ebx + 0x18]
inc esi
lea ecx, [ebx + 0x30]
lea edx, [esi*4 + 1]
movsd xmm0, qword [ecx - 0x20]
lea ecx, [ecx + 0x40]
movsd qword [eax - 0x10], xmm0
lea eax, [eax + 0x20]
movsd xmm0, qword [ecx - 0x50]
movsd qword [eax - 0x28], xmm0
movsd xmm0, qword [ecx - 0x40]
movsd qword [eax - 0x20], xmm0
movsd xmm0, qword [ecx - 0x30]
movsd qword [eax - 0x18], xmm0
sub esi, 1
jne 0x47e651
cmp edx, ebp
jae 0x47e6a1
mov eax, edx
shl eax, 4
add eax, ebx
nop
movsd xmm0, qword [eax]
lea eax, [eax + 0x10]
movsd qword [ebx + edx*8], xmm0
inc edx
cmp edx, ebp
jb 0x47e690
mov edx, ebp
mov ecx, ebx
call fcn.0043e620
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e77e
cmp ebp, 8
jb 0x47e763
lea eax, [ebp - 1]
lea eax, [ebx + eax*8]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47e6db
cmp edx, ebx
jae 0x47e763
mov edi, ebp
lea eax, [esi + 8]
and edi, 0xfffffff8
lea edx, [ebx + 0x20]
movups xmm0, xmmword [edx - 0x20]
add ecx, 8
lea edx, [edx + 0x40]
lea eax, [eax + 0x10]
cvttpd2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movd dword [eax - 0x18], xmm0
movups xmm0, xmmword [edx - 0x50]
cvttpd2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movd dword [eax - 0x14], xmm0
movups xmm0, xmmword [edx - 0x40]
cvttpd2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movd dword [eax - 0x10], xmm0
movups xmm0, xmmword [edx - 0x30]
cvttpd2dq xmm0, xmm0
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movd dword [eax - 0xc], xmm0
cmp ecx, edi
jb 0x47e6e6
cmp ecx, ebp
jae 0x47e77e
nop word [eax + eax]
cvttsd2si eax, qword [ebx + ecx*8]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e770
or byte [0x54e685], 0x10
mov eax, 0x3fffffff
mov ecx, 0x54e660
cmp ebp, eax
cmova ebp, eax
mov al, byte [0x54e685]
shr al, 4
mov edx, ebp
and al, 1
movzx eax, al
push eax
call fcn.004370a0
movzx eax, byte [0x789f67]
add esp, 4
mov edx, dword [esp + 0x68]
mov ecx, 0x54e660
mov dword [0x54e688], ebp
mov byte [0x54e684], 0x40
push eax
mov byte [0x54e686], 0x80
call fcn.004327e0
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret