Function at 0x420e40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x4fc00c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x28], eax
mov dword [edi], 0x90905
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 4], 0xa00
mov dword [edi + 8], 0x2010000
mov dword [edi + 0xc], 0x1010200
call fcn.00443f90
cmp byte [eax], 0
je 0x420f62
mov eax, dword [eax + 8]
lea edx, [ebp - 0x18]
mov ecx, 4
mov dword [ebp - 0xa], 0x10
mov dword [ebp - 0x18], 0x20001
mov dword [ebp - 0x14], 0xac44
mov word [ebp - 0xc], cx
mov dword [ebp - 0x10], 0x2b110
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x38]
test eax, eax
je 0x420f62
mov ecx, str.CSnd9_SetWaveFormat_failed_n
call fcn.0044cef0
call fcn.00443f90
cmp byte [eax], 0
je 0x420f62
mov eax, dword [eax + 8]
lea esi, [ebp - 0x18]
mov ecx, 4
mov dword [ebp - 0xa], 0x10
mov dword [ebp - 0x18], 0x20001
mov dword [ebp - 0x14], 0x5622
mov word [ebp - 0xc], cx
mov dword [ebp - 0x10], 0x15888
mov edx, dword [eax]
push esi
push eax
call dword [edx + 0x38]
test eax, eax
je 0x420f62
mov ecx, str.CSnd9_SetWaveFormat_failed_n
call fcn.0044cef0
call fcn.00443f90
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x420f83
cmp byte [eax], 0
je 0x420f83
mov eax, dword [ecx]
push 0
push ecx
mov dword [esp], 0x3f800000
push ecx
call dword [eax + 0x3c]
call fcn.00443f90
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x420fa4
cmp byte [eax], 0
je 0x420fa4
mov eax, dword [ecx]
push 0
push ecx
mov dword [esp], 0x3f800000
push ecx
call dword [eax + 0x2c]
xor eax, eax
mov dword [edi + 0x50], 0x607e7
mov dword [edi + 0x5c], eax
lea eax, [ebp - 0x2c]
push eax
push str.eidm_AIBeach.msg
push 0x4dc30c
mov dword [edi + 0x54], 0x60000
mov dword [edi + 0x58], 5
call fcn.004523e0
mov ecx, eax
call fcn.004526f0
mov ebx, eax
test ebx, ebx
je 0x420fe3
mov dword [ebp - 0x30], ebx
jmp 0x420ff9
lea edx, [ebp - 0x2c]
mov ecx, str.eidm_AIBeach.msg
call fcn.0044eb80
mov ebx, eax
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x421041
mov esi, dword [ebp - 0x2c]
mov ecx, 4
xor edx, edx
cmp esi, ecx
jbe 0x421028
nop word [eax + eax]
mov al, byte [edx + 0x4dd238]
xor byte [ecx + ebx], al
lea eax, [edx + 1]
inc ecx
cmp eax, 0x40
sbb edx, edx
and edx, eax
cmp ecx, esi
jb 0x421010
cmp dword [ebx], 0x44494d45
je 0x42106c
mov eax, dword [ebp - 0x30]
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov esi, dword [ebp - 0x28]
push str.eidm_AIBeach.msg
push str.EWU::Initialize_EIDM_open_failed___s_
push esi
call fcn.0044d1b0
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 4
movzx eax, word [ebx + 4]
imul esi, eax, 0x82
push 4
push 0x3000
mov word [edi + 0x40], ax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push esi
lea ecx, [ebx + 6]
mov dword [edi + 0x44], eax
push ecx
push eax
call fcn.004803e0
add esp, 0xc
mov eax, ebx
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov esi, dword [ebp - 0x28]
push esi
push str.ecs_AIBeach.ecs
push ecx
lea ecx, [edi + 0x48]
call fcn.0044fa90
test al, al
je 0x421057
cmp byte [edi + 9], 0
lea eax, [edi + 2]
push ecx
setne byte [ebp - 0x28]
lea ebx, [edi + 1]
push dword [ebp - 0x28]
push eax
push ebx
push edi
call fcn.00423ed0
mov ecx, eax
call fcn.004240a0
test al, al
je 0x421057
push esi
call fcn.00422650
mov ecx, eax
call fcn.00422850
test al, al
je 0x421057
movzx eax, byte [edi + 9]
push eax
movzx eax, byte [edi + 2]
push eax
movzx eax, byte [ebx]
push eax
movzx eax, byte [edi]
push eax
call fcn.00423ed0
mov ecx, eax
call fcn.00424370
mov cl, byte [edi + 7]
xor al, al
movaps xmm0, xmmword [0x4f4340]
cmp al, cl
movzx edx, cl
sbb eax, eax
movups xmmword [ebp - 0x24], xmm0
and eax, edx
movaps xmm0, xmmword [0x4f4350]
movups xmmword [ebp - 0x14], xmm0
cmp eax, 7
jae 0x421150
xor al, al
cmp al, cl
sbb esi, esi
and esi, edx
jmp 0x421155
mov esi, 7
call fcn.00443960
mov ecx, dword [ebp + esi*4 - 0x24]
pop edi
pop esi
mov dword [eax + 0x138], ecx
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0047d312
mov esp, ebp
pop ebp
ret 4