Function at 0x47d280
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.00489d25
add esp, 0xc
lea eax, [esp + 0x48]
push ebp
push 4
push 1
push eax
call fcn.0048a465
push ebp
call fcn.00489d40
add esp, 0x14
cmp esi, 0xc
jb 0x47d2ec
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.00489d25
add esp, 0xc
push ebp
call fcn.0048feb4
add esp, 4
test eax, eax
je 0x47d308
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.00489a43
lea ecx, [esi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47d416
push ebp
push 1
lea eax, [esp + 0x64]
push 4
push eax
call fcn.0048a465
push ebp
call fcn.0048feb4
add esp, 0x14
test eax, eax
jne 0x47d416
push ebp
push 1
lea eax, [esp + 0x58]
push 4
push eax
call fcn.0048a465
push ebp
call fcn.0048feb4
add esp, 0x14
test eax, eax
jne 0x47d416
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 0x47d3d9
cmp esi, 0x53534e44
jne 0x47d3ec
push ebp
call fcn.00489a43
mov ebx, dword [esp + 0x54]
mov esi, eax
add esp, 4
mov dword [esp + 0x44], esi
mov edx, ebx
jmp 0x47d3f0
push ebp
call fcn.00489a43
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.00489d25
add esp, 0xc
push ebp
call fcn.0048feb4
add esp, 4
test eax, eax
je 0x47d304
jmp 0x47d41a
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
test edx, edx
je 0x47d2ec
cmp edi, 0x12
jb 0x47d2ec
test esi, esi
je 0x47d2ec
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.00489d25
add esp, 0xc
lea eax, [esp + 0x40]
push ebp
push 1
push 2
push eax
call fcn.0048a465
movzx eax, word [esp + 0x50]
push 1
rol ax, 8
movzx eax, ax
push 4
push ebp
mov dword [esp + 0x5c], eax
call fcn.00489d25
add esp, 0x1c
lea eax, [esp + 0x4c]
push ebp
push 1
push 2
push eax
call fcn.0048a465
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.0048a465
mov eax, dword [esp + 0x60]
add esp, 0x20
cmp ax, 1
je 0x47d4ee
cmp ax, 2
je 0x47d4ee
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 0x47d551
push ebp
push 4
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0048a465
lea eax, [esp + 0x58]
add esp, 0x10
cmp dword [eax], 0x20776172
jne 0x47d527
mov cl, byte [esp + 0x3e]
mov byte [esp + 0x3f], 0
jmp 0x47d551
lea eax, [esp + 0x48]
cmp dword [eax], 0x32334c46
je 0x47d54b
cmp dword [eax], 0x32336c66
je 0x47d54b
cmp dword [eax], 0x34364c46
je 0x47d54b
cmp dword [eax], 0x34366c66
jne 0x47d577
mov cl, 1
mov byte [esp + 0x3e], cl
mov eax, dword [esp + 0x4c]
cmp ax, 8
je 0x47d58f
cmp ax, 0x10
je 0x47d58f
cmp ax, 0x18
je 0x47d58f
cmp ax, 0x20
je 0x47d58f
test cl, cl
je 0x47d577
cmp ax, 0x40
je 0x47d58f
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.0048f71d
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.004a7310
mulsd xmm0, qword [0x4e2988]
sub esp, 8
addsd xmm0, qword [0x4e2a80]
movsd qword [esp + 0x70], xmm0
fmul qword [esp + 0x70]
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp], xmm0
call fcn.0048f7e7
add esp, 8
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
call fcn.004a71e1
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
push 0
push eax
push ebp
call fcn.00489d25
add esp, 0xc
push ebp
push 1
push 4
lea eax, [esp + 0x6c]
push eax
call fcn.0048a465
add esp, 0x10
cmp dword [esp + 0x60], 0
ja 0x47d2ec
push 1
push 4
push ebp
call fcn.00489d25
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.0047e610
test al, al
je 0x47d711
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 0x47de58
cmp ax, 8
jne 0x47d860
lea eax, [ebp + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e1ee
push esi
push 1
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a465
add esp, 0x10
cmp eax, 1
jne 0x47e22a
cmp byte [esp + 0x3f], 0
mov edx, dword [0x54e67c]
jne 0x47d7d9
xor eax, eax
test ebp, ebp
je 0x47d7d9
cmp ebp, 0x40
jb 0x47d7cb
movaps xmm2, xmmword [0x4e2d10]
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 0x47d785
cmp eax, ebp
jae 0x47d7d9
nop
xor byte [eax + edx], 0x80
inc eax
cmp eax, ebp
jb 0x47d7d0
cmp word [esp + 0x40], 2
jne 0x47e5a5
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47d83d
lea edi, [ebp - 1]
sub eax, 1
je 0x47d81e
xor esi, esi
test edi, edi
je 0x47d815
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 0x47d800
mov byte [esi + edx], 0
jmp 0x47e5a5
xor ecx, ecx
test edi, edi
je 0x47d834
lea esi, [edx + 1]
mov al, byte [esi]
lea esi, [esi + 2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, edi
jb 0x47d827
mov byte [ecx + edx], 0
jmp 0x47e5a5
mov ecx, 1
cmp ebp, ecx
jbe 0x47e5a5
nop word [eax + eax]
mov al, byte [edx + ecx*2]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebp
jb 0x47d850
jmp 0x47e5a5
cmp ax, 0x10
jne 0x47d9e9
shr ebp, 1
lea eax, [ebp*2 + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e1ee
push esi
push 2
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a465
add esp, 0x10
cmp eax, 2
jne 0x47e22a
mov edx, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47d95a
cmp ebp, 0x20
jb 0x47d936
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 0x47d8d0
cmp esi, ebp
jae 0x47d95a
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 0x47d940
cmp word [esp + 0x40], 2
jne 0x47e59e
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47d9ca
lea edi, [ebp - 1]
sub eax, 1
je 0x47d9a1
xor esi, esi
test edi, edi
je 0x47d996
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 0x47d980
xor eax, eax
mov word [edx + esi*2], ax
jmp 0x47e59e
xor ecx, ecx
test edi, edi
je 0x47d9bf
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 0x47d9b0
xor eax, eax
mov word [edx + ecx*2], ax
jmp 0x47e59e
mov ecx, 1
cmp ebp, ecx
jbe 0x47e59e
mov ax, word [edx + ecx*4]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47d9d7
jmp 0x47e59e
cmp ax, 0x18
jne 0x47dbe8
mov eax, 0xaaaaaaab
mul ebp
mov ebp, edx
shr ebp, 1
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e1ee
push esi
add eax, 0xf
push 3
mov dword [0x54e67c], eax
add eax, ebp
push ebp
push eax
call fcn.0048a465
add esp, 0x10
cmp eax, 3
jne 0x47e22a
mov edi, dword [0x54e67c]
xor esi, esi
lea edx, [edi + ebp]
test ebp, ebp
je 0x47da73
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 0x47da50
cmp word [esp + 0x40], 2
jne 0x47db01
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47daed
sub eax, 1
je 0x47dacb
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47dac2
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 0x47daa1
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47db01
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47dae4
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47dad7
mov dword [edi + ecx*4], 0
jmp 0x47db01
mov ecx, 1
cmp ebp, ecx
jbe 0x47db01
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47daf6
mov edx, ebp
mov ecx, edi
call fcn.0043e150
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e59e
cmp ebp, 0x10
jb 0x47dbcd
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47db3b
cmp edx, edi
jae 0x47dbcd
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 0x47db50
cmp ecx, ebp
jae 0x47e59e
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47dbd5
jmp 0x47e59e
cmp ax, 0x20
jne 0x47e5a5
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e1ee
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a465
add esp, 0x10
cmp eax, 4
jne 0x47e22a
mov edi, dword [0x54e67c]
lea ecx, [eax + 0xc]
xor esi, esi
test ebp, ebp
je 0x47dcdf
cmp ebp, eax
jb 0x47dcac
movaps xmm5, xmmword [0x4e2c50]
mov eax, ebp
movaps xmm6, xmmword [0x4e2c40]
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 0x47dc70
cmp esi, ebp
jae 0x47dcdf
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 0x47dcb0
cmp word [esp + 0x40], 2
jne 0x47dd70
shr ebp, 1
movsx eax, bx
mov dword [esp + 0x58], ebp
sub eax, 1
je 0x47dd5c
sub eax, 1
je 0x47dd3a
lea eax, [ebp - 1]
xor ebx, ebx
mov dword [esp + 0x64], eax
test eax, eax
je 0x47dd31
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 0x47dd10
mov ebp, dword [esp + 0x58]
mov dword [edi + ebx*4], 0
jmp 0x47dd70
lea esi, [ebp - 1]
xor ecx, ecx
test esi, esi
je 0x47dd53
lea edx, [edi + 4]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x47dd46
mov dword [edi + ecx*4], 0
jmp 0x47dd70
mov ecx, 1
cmp ebp, ecx
jbe 0x47dd70
mov eax, dword [edi + ecx*8]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47dd65
mov edx, ebp
mov ecx, edi
call fcn.0043e150
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e59e
cmp ebp, 0x10
jb 0x47de3d
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47ddaa
cmp edx, edi
jae 0x47de3d
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 0x47ddc0
cmp ecx, ebp
jae 0x47e59e
mov ax, word [edi + ecx*4 + 2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47de45
jmp 0x47e59e
cmp ax, 0x20
jne 0x47e1c8
shr ebp, 2
lea eax, [ebp*4 + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
je 0x47e1ee
push esi
push 4
add eax, 0xf
push ebp
push eax
mov dword [0x54e67c], eax
call fcn.0048a465
add esp, 0x10
cmp eax, 4
jne 0x47e22a
mov edi, dword [0x54e67c]
xor esi, esi
test ebp, ebp
je 0x47df4f
cmp ebp, eax
jb 0x47df1c
movaps xmm5, xmmword [0x4e2c50]
mov ecx, 0x10
movaps xmm6, xmmword [0x4e2c40]
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 0x47dee0
cmp esi, ebp
jae 0x47df4f
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 0x47df20
cmp word [esp + 0x40], 2
mov esi, dword [0x54e67c]
jne 0x47e0e2
movsx eax, bx
shr ebp, 1
sub eax, 1
je 0x47e086
lea ebx, [ebp - 1]
sub eax, 1
je 0x47e025
movss xmm1, dword [0x4e29d0]
xor ecx, ecx
cmp ebx, 4
jb 0x47dff5
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 0x47dfa0
cmp ecx, ebx
jae 0x47e019
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 0x47e000
mov dword [esi + ecx*4], 0
jmp 0x47e0e2
xor edi, edi
cmp ebx, 4
jb 0x47e066
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 0x47e040
lea ebx, [ebp - 1]
cmp edi, ebx
jae 0x47e07d
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 0x47e070
mov dword [esi + edi*4], 0
jmp 0x47e0e2
mov ecx, 1
cmp ebp, ecx
jbe 0x47e0e2
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e0d3
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 0x47e0b0
cmp ecx, ebp
jae 0x47e0e2
mov eax, dword [esi + ecx*8]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, ebp
jb 0x47e0d7
mov edx, ebp
mov ecx, esi
call fcn.0043e2b0
mov edi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e59e
cmp ebp, 0x10
jb 0x47e1ad
lea eax, [esi - 4]
lea eax, [eax + ebp*4]
lea edx, [edi - 2]
lea edx, [edx + ebp*2]
cmp edi, eax
ja 0x47e11c
cmp edx, esi
jae 0x47e1ad
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 0x47e130
cmp ecx, ebp
jae 0x47e59e
cvttss2si eax, dword [esi + ecx*4]
mov word [edi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e1b5
jmp 0x47e59e
cmp ax, 0x40
jne 0x47e5a5
shr ebp, 3
lea eax, [ebp*8 + 0x1f]
push eax
call fcn.004893b5
add esp, 4
mov dword [0x54e680], eax
test eax, eax
jne 0x47e210
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.0048a465
add esp, 0x10
cmp eax, 8
je 0x47e242
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 0x47e2f7
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 0x47e260
mov ebx, dword [0x54e67c]
cmp word [esp + 0x40], 2
jne 0x47e4c1
mov eax, dword [esp + 0x54]
cwde
shr ebp, 1
sub eax, 1
je 0x47e44c
lea edi, [ebp - 1]
sub eax, 1
je 0x47e3c9
movsd xmm1, qword [0x4e2a70]
xor edx, edx
cmp edi, 4
jb 0x47e397
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 0x47e342
cmp edx, edi
jae 0x47e3bc
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 0x47e3a2
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e4c1
xor edx, edx
cmp edi, 4
jb 0x47e423
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 0x47e3f0
cmp edx, edi
jae 0x47e3bc
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 0x47e431
xorps xmm0, xmm0
movsd qword [ebx + edx*8], xmm0
jmp 0x47e4c1
mov edx, 1
cmp ebp, edx
jbe 0x47e4c1
lea eax, [ebp - 1]
cmp eax, 4
jb 0x47e4a4
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 0x47e471
cmp edx, ebp
jae 0x47e4c1
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 0x47e4b0
mov edx, ebp
mov ecx, ebx
call fcn.0043e460
mov esi, dword [0x54e67c]
xor ecx, ecx
test ebp, ebp
je 0x47e59e
cmp ebp, 8
jb 0x47e583
lea eax, [ebp - 1]
lea eax, [ebx + eax*8]
lea edx, [esi - 2]
lea edx, [edx + ebp*2]
cmp esi, eax
ja 0x47e4fb
cmp edx, ebx
jae 0x47e583
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 0x47e506
cmp ecx, ebp
jae 0x47e59e
nop word [eax + eax]
cvttsd2si eax, qword [ebx + ecx*8]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, ebp
jb 0x47e590
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.00436f20
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.00432690
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret