Function at 0x402a19
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a8
push ebx
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x3c]
mov dword [ebp - 0x7c], 0xf3
mov dword [ebp - 0x78], 0x26
mov dword [ebp - 0x74], 0x81
mov dword [ebp - 0x70], 0xc4
mov dword [ebp - 0x6c], 0x39
mov dword [ebp - 0x68], 0x86
mov dword [ebp - 0x64], 0xdb
mov dword [ebp - 0x60], 0x92
mov dword [ebp - 0x5c], 0x71
mov dword [ebp - 0x58], 0xa3
mov dword [ebp - 0x54], 0xb9
mov dword [ebp - 0x50], 0xe6
mov dword [ebp - 0x4c], 0x53
mov dword [ebp - 0x48], 0x7a
mov dword [ebp - 0x44], 0x95
mov dword [ebp - 0x40], 0x7c
mov esi, 0x44f398
stosd dword es:[edi], eax
lea edi, [ebp - 0xc]
push 0x12
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x44f390
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x44f384
lea edi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x44f378
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, 0x44f36c
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, 0x44f360
lea edi, [ebp - 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
mov esi, 0x44f314
lea edi, [ebp - 0x2a0]
push 0x10
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop ecx
mov esi, 0x44f2d4
lea edi, [ebp - 0x210]
push 0x10
rep movsd dword es:[edi], dword [esi]
pop ecx
mov esi, 0x44f290
lea edi, [ebp - 0x254]
push 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop ecx
mov esi, 0x44f274
lea edi, [ebp - 0xa4]
lea eax, [ebp - 0x14]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
movsb byte es:[edi], byte [esi]
call fcn.00401fe8
lea eax, [ebp - 0x38]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x20]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x2c]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x88]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x2a0]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x210]
push eax
call fcn.00401fe8
lea eax, [ebp - 0x254]
push eax
call fcn.00401fe8
lea eax, [ebp - 0xa4]
push eax
call fcn.00401fe8
push dword [ebp + 8]
lea eax, [ebp - 0x4a8]
push eax
call fcn.0043feb0
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x4a8]
push eax
call fcn.0043fec0
add esp, 0x34
mov dword [ebp + 8], ebx
cmp dword [ebp + 8], ebx
jne 0x402bd4
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x3a4]
push eax
call fcn.0043feb0
lea eax, [ebp - 0x20]
jmp 0x402c11
cmp dword [ebp + 8], 1
jne 0x402bf2
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x3a4]
push eax
call fcn.0043feb0
lea eax, [ebp - 0x2c]
jmp 0x402c11
cmp dword [ebp + 8], 2
jne 0x402c21
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x3a4]
push eax
call fcn.0043feb0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x3a4]
push eax
call fcn.0043fec0
add esp, 0x10
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x3a4]
push eax
call fcn.00401e27
add esp, 0xc
test eax, eax
je 0x402db2
lea eax, [ebp - 0x14]
push ebx
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.00401f10
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x402da9
add esi, 5
lea eax, [ebp - 0xc]
push esi
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.00401f10
mov edi, eax
sub eax, esi
push eax
mov eax, dword [ebp - 4]
add eax, esi
push eax
lea eax, [ebp - 0x1d0]
push eax
call fcn.004403f0
lea eax, [ebp - 0x1d0]
push ebx
sub eax, esi
and byte [eax + edi], 0
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.00401f10
mov esi, eax
add esp, 0x2c
cmp esi, ebx
je 0x402da9
add esi, 9
lea eax, [ebp - 0xc]
push esi
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.00401f10
mov edi, eax
sub eax, esi
push eax
mov eax, dword [ebp - 4]
add eax, esi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.004403f0
lea eax, [ebp - 0x108]
sub eax, esi
and byte [eax + edi], 0
lea eax, [ebp - 0x108]
push eax
xor edi, edi
call fcn.0043ffa0
add esp, 0x20
test eax, 0xfffffffe
jbe 0x402d3c
lea esi, [ebp - 0x16c]
lea ebx, [ebp - 0x108]
push esi
push 0x44f26c
push ebx
call fcn.00440b17
mov eax, edi
and eax, 0xf
mov al, byte [ebp + eax*4 - 0x7c]
xor byte [esi], al
inc edi
inc ebx
lea eax, [ebp - 0x108]
inc ebx
push eax
inc esi
call fcn.0043ffa0
shr eax, 1
add esp, 0x10
cmp edi, eax
jb 0x402d0a
xor ebx, ebx
and byte [ebp + edi - 0x16c], 0
cmp dword [ebp + 8], ebx
jne 0x402d63
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x454f50
push 0x44f268
jmp 0x402da1
cmp dword [ebp + 8], 1
jne 0x402d83
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x454f50
push 0x44f264
jmp 0x402da1
cmp dword [ebp + 8], 2
jne 0x402da9
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x454f50
push 0x44f260
call fcn.0040596d
add esp, 0x10
push dword [ebp - 4]
call fcn.00440ae8
pop ecx
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jb 0x402bb7
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret