Function at 0x47d590
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.0048a035
add esp, 0xc
lea eax, [esp + 0x48]
push ebp
push 4
push 1
push eax
call fcn.0048a775
push ebp
call fcn.0048a050
add esp, 0x14
cmp esi, 0xc
jb 0x47d5fc
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.0048a035
add esp, 0xc
push ebp
call fcn.004901c4
add esp, 4
test eax, eax
je 0x47d618
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.00489d53
lea ecx, [esi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47d726
push ebp
push 1
lea eax, [esp + 0x64]
push 4
push eax
call fcn.0048a775
push ebp
call fcn.004901c4
add esp, 0x14
test eax, eax
jne 0x47d726
push ebp
push 1
lea eax, [esp + 0x58]
push 4
push eax
call fcn.0048a775
push ebp
call fcn.004901c4
add esp, 0x14
test eax, eax
jne 0x47d726
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 0x47d6e9
cmp esi, 0x53534e44
jne 0x47d6fc
push ebp
call fcn.00489d53
mov ebx, dword [esp + 0x54]
mov esi, eax
add esp, 4
mov dword [esp + 0x44], esi
mov edx, ebx
jmp 0x47d700
push ebp
call fcn.00489d53
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.0048a035
add esp, 0xc
push ebp
call fcn.004901c4
add esp, 4
test eax, eax
je 0x47d614
jmp 0x47d72a
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
test edx, edx
je 0x47d5fc
cmp edi, 0x12
jb 0x47d5fc
test esi, esi
je 0x47d5fc
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.0048a035
add esp, 0xc
lea eax, [esp + 0x40]
push ebp
push 1
push 2
push eax
call fcn.0048a775
movzx eax, word [esp + 0x50]
push 1
rol ax, 8
movzx eax, ax
push 4
push ebp
mov dword [esp + 0x5c], eax
call fcn.0048a035
add esp, 0x1c
lea eax, [esp + 0x4c]
push ebp
push 1
push 2
push eax
call fcn.0048a775
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.0048a775
mov eax, dword [esp + 0x60]
add esp, 0x20
cmp ax, 1
je 0x47d7fe
cmp ax, 2
je 0x47d7fe
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 0x47d861
push ebp
push 4
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0048a775
lea eax, [esp + 0x58]
add esp, 0x10
cmp dword [eax], 0x20776172
jne 0x47d837
mov cl, byte [esp + 0x3e]
mov byte [esp + 0x3f], 0
jmp 0x47d861
lea eax, [esp + 0x48]
cmp dword [eax], 0x32334c46
je 0x47d85b
cmp dword [eax], 0x32336c66
je 0x47d85b
cmp dword [eax], 0x34364c46
je 0x47d85b
cmp dword [eax], 0x34366c66
jne 0x47d887
mov cl, 1
mov byte [esp + 0x3e], cl
mov eax, dword [esp + 0x4c]
cmp ax, 8
je 0x47d89f
cmp ax, 0x10
je 0x47d89f
cmp ax, 0x18
je 0x47d89f
cmp ax, 0x20
je 0x47d89f
test cl, cl
je 0x47d887
cmp ax, 0x40
je 0x47d89f
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.0048fa2d
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.004a7630
mulsd xmm0, qword [0x4e29e8]
sub esp, 8
addsd xmm0, qword [0x4e2ae0]
movsd qword [esp + 0x70], xmm0
fmul qword [esp + 0x70]
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp], xmm0
call fcn.0048faf7
add esp, 8
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
call fcn.004a7501
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
push 0
push eax
push ebp
call fcn.0048a035
add esp, 0xc
push ebp
push 1
push 4
lea eax, [esp + 0x6c]
push eax
call fcn.0048a775
add esp, 0x10
cmp dword [esp + 0x60], 0
ja 0x47d5fc
push 1
push 4
push ebp
call fcn.0048a035
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.0047e920
test al, al
je 0x47da21
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 0x47e168
cmp ax, 8
jne 0x47db70
lea eax, [ebp + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e4fe
push esi
push 1
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a775
add esp, 0x10
cmp eax, 1
jne 0x47e53a
cmp byte [esp + 0x3f], 0
mov edx, dword [0x54e67c]
jne 0x47dae9
xor eax, eax
test ebp, ebp
je 0x47dae9
cmp ebp, 0x40
jb 0x47dadb
movaps xmm2, xmmword [0x4e2d50]
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 0x47da95
cmp eax, ebp
jae 0x47dae9
nop
xor byte [eax + edx], 0x80
inc eax
cmp eax, ebp
jb 0x47dae0
cmp word [esp + 0x40], 2
jne 0x47e8b5
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47db4d
lea edi, [ebp - 1]
sub eax, 1
je 0x47db2e
xor esi, esi
test edi, edi
je 0x47db25
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 0x47db10
mov byte [esi + edx], 0
jmp 0x47e8b5
xor ecx, ecx
test edi, edi
je 0x47db44
lea esi, [edx + 1]
mov al, byte [esi]
lea esi, [esi + 2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, edi
jb 0x47db37
mov byte [ecx + edx], 0
jmp 0x47e8b5
mov ecx, 1
cmp ebp, ecx
jbe 0x47e8b5
nop word [eax + eax]
mov al, byte [edx + ecx*2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebp
jb 0x47db60
jmp 0x47e8b5
cmp ax, 0x10
jne 0x47dcf9
shr ebp, 1
lea eax, [ebp*2 + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e4fe
push esi
push 2
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a775
add esp, 0x10
cmp eax, 2
jne 0x47e53a
mov edx, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47dc6a
cmp ebp, 0x20
jb 0x47dc46
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 0x47dbe0
cmp esi, ebp
jae 0x47dc6a
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 0x47dc50
cmp word [esp + 0x40], 2
jne 0x47e8ae
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47dcda
lea edi, [ebp - 1]
sub eax, 1
je 0x47dcb1
xor esi, esi
test edi, edi
je 0x47dca6
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 0x47dc90
xor eax, eax
mov word [edx + esi*2], ax
jmp 0x47e8ae
xor ecx, ecx
test edi, edi
je 0x47dccf
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 0x47dcc0
xor eax, eax
mov word [edx + ecx*2], ax
jmp 0x47e8ae
mov ecx, 1
cmp ebp, ecx
jbe 0x47e8ae
mov ax, word [edx + ecx*4]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47dce7
jmp 0x47e8ae
cmp ax, 0x18
jne 0x47def8
mov eax, 0xaaaaaaab
mul ebp
mov ebp, edx
shr ebp, 1
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e4fe
push esi
add eax, 0xf
push 3
mov dword [0x54e67c], eax
add eax, ebp
push ebp
push eax
call fcn.0048a775
add esp, 0x10
cmp eax, 3
jne 0x47e53a
mov edi, dword [0x54e67c]
xor esi, esi
lea edx, [edi + ebp]
test ebp, ebp
je 0x47dd83
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 0x47dd60
cmp word [esp + 0x40], 2
jne 0x47de11
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47ddfd
sub eax, 1
je 0x47dddb
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47ddd2
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 0x47ddb1
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47de11
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47ddf4
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47dde7
mov dword [edi + ecx*4], 0
jmp 0x47de11
mov ecx, 1
cmp ebp, ecx
jbe 0x47de11
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47de06
mov edx, ebp
mov ecx, edi
call fcn.0043e3b0
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e8ae
cmp ebp, 0x10
jb 0x47dedd
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47de4b
cmp edx, edi
jae 0x47dedd
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 0x47de60
cmp ecx, ebp
jae 0x47e8ae
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47dee5
jmp 0x47e8ae
cmp ax, 0x20
jne 0x47e8b5
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e4fe
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a775
add esp, 0x10
cmp eax, 4
jne 0x47e53a
mov edi, dword [0x54e67c]
lea ecx, [eax + 0xc]
xor esi, esi
test ebp, ebp
je 0x47dfef
cmp ebp, eax
jb 0x47dfbc
movaps xmm5, xmmword [0x4e2c90]
mov eax, ebp
movaps xmm6, xmmword [0x4e2c80]
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 0x47df80
cmp esi, ebp
jae 0x47dfef
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 0x47dfc0
cmp word [esp + 0x40], 2
jne 0x47e080
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47e06c
sub eax, 1
je 0x47e04a
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47e041
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 0x47e020
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47e080
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47e063
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47e056
mov dword [edi + ecx*4], 0
jmp 0x47e080
mov ecx, 1
cmp ebp, ecx
jbe 0x47e080
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47e075
mov edx, ebp
mov ecx, edi
call fcn.0043e3b0
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e8ae
cmp ebp, 0x10
jb 0x47e14d
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47e0ba
cmp edx, edi
jae 0x47e14d
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 0x47e0d0
cmp ecx, ebp
jae 0x47e8ae
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e155
jmp 0x47e8ae
cmp ax, 0x20
jne 0x47e4d8
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e4fe
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a775
add esp, 0x10
cmp eax, 4
jne 0x47e53a
mov edi, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47e25f
cmp ebp, eax
jb 0x47e22c
movaps xmm5, xmmword [0x4e2c90]
mov ecx, 0x10
movaps xmm6, xmmword [0x4e2c80]
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 0x47e1f0
cmp esi, ebp
jae 0x47e25f
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 0x47e230
cmp word [esp + 0x40], 2
mov esi, dword [0x54e67c]
jne 0x47e3f2
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47e396
lea ebx, [ebp - 1]
sub eax, 1
je 0x47e335
movss xmm1, dword [0x4e2a30]
xor ecx, ecx
cmp ebx, 4
jb 0x47e305
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 0x47e2b0
cmp ecx, ebx
jae 0x47e329
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 0x47e310
mov dword [esi + ecx*4], 0
jmp 0x47e3f2
xor edi, edi
cmp ebx, 4
jb 0x47e376
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 0x47e350
lea ebx, [ebp - 1]
cmp edi, ebx
jae 0x47e38d
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 0x47e380
mov dword [esi + edi*4], 0
jmp 0x47e3f2
mov ecx, 1
cmp ebp, ecx
jbe 0x47e3f2
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e3e3
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 0x47e3c0
cmp ecx, ebp
jae 0x47e3f2
mov eax, dword [esi + ecx*8]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47e3e7
mov edx, ebp
mov ecx, esi
call fcn.0043e510
mov edi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e8ae
cmp ebp, 0x10
jb 0x47e4bd
lea eax, [esi - 4]
lea eax, [eax + ebp*4]
lea edx, [edi - 2]
lea edx, [edx + ebp*2]
cmp edi, eax
ja 0x47e42c
cmp edx, esi
jae 0x47e4bd
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 0x47e440
cmp ecx, ebp
jae 0x47e8ae
cvttss2si eax, dword [esi + ecx*4]
mov word [edi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e4c5
jmp 0x47e8ae
cmp ax, 0x40
jne 0x47e8b5
shr ebp, 3
lea eax, [ebp*8 + 0x1f]
push eax
call fcn.004896c5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
jne 0x47e520
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.0048a775
add esp, 0x10
cmp eax, 8
je 0x47e552
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 0x47e607
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 0x47e570
mov ebx, dword [0x54e67c]
cmp word [esp + 0x40], 2
jne 0x47e7d1
mov eax, dword [esp + 0x54]
cwde
shr ebp, 1
sub eax, 1
je 0x47e75c
lea edi, [ebp - 1]
sub eax, 1
je 0x47e6d9
movsd xmm1, qword [0x4e2ad0]
xor edx, edx
cmp edi, 4
jb 0x47e6a7
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 0x47e652
cmp edx, edi
jae 0x47e6cc
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 0x47e6b2
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e7d1
xor edx, edx
cmp edi, 4
jb 0x47e733
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 0x47e700
cmp edx, edi
jae 0x47e6cc
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 0x47e741
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e7d1
mov edx, 1
cmp ebp, edx
jbe 0x47e7d1
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e7b4
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 0x47e781
cmp edx, ebp
jae 0x47e7d1
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 0x47e7c0
mov edx, ebp
mov ecx, ebx
call fcn.0043e6c0
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e8ae
cmp ebp, 8
jb 0x47e893
lea eax, [ebp - 1]
lea eax, [ebx + eax*8]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47e80b
cmp edx, ebx
jae 0x47e893
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 0x47e816
cmp ecx, ebp
jae 0x47e8ae
nop word [eax + eax]
cvttsd2si eax, qword [ebx + ecx*8]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e8a0
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.00437150
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.00432870
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret