Function at 0x412d40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov esi, esp
push eax
push eax
mov eax, esp
push eax
mov dword [esi + 0xa8], esp
mov dword [esi + 0xbc], eax
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x78], eax
mov esp, eax
push eax
push eax
mov eax, esp
mov dword [esi + 0x88], eax
sub esp, 8
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0xd0], esp
sub esp, 8
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0xc4], esp
sub esp, 8
mov dword [esi + 0x80], esp
sub esp, 8
mov dword [esi + 0xc0], esp
sub esp, 8
mov dword [esi + 0x50], esp
sub esp, 8
mov dword [esi + 0xb4], esp
push eax
mov dword [esi + 0xb0], esp
sub esp, 8
mov dword [esi + 0xac], esp
sub esp, 8
mov dword [esi + 0x7c], esp
sub esp, 0x10
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x70], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x74], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0x134], esp
sub esp, 8
mov dword [esi + 0x90], esp
sub esp, 8
mov dword [esi + 0x114], esp
sub esp, 8
mov dword [esi + 0x98], esp
sub esp, 8
mov dword [esi + 0x94], esp
sub esp, 8
mov dword [esi + 0xe0], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xcc], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x10c], esp
sub esp, 8
mov edi, esp
sub esp, 0x50
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0xdc], esp
sub esp, 8
mov dword [esi + 0x8c], esp
sub esp, 8
mov dword [esi + 0x110], esp
sub esp, 8
mov dword [esi + 0x130], esp
sub esp, 8
mov dword [esi + 0xd4], esp
sub esp, 8
mov dword [esi + 0x12c], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
mov word [esi + 0xc], 0x89e7
mov dword [esi + 0xe], 0
mov byte [esi + 0x12], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 6
ja 0x412ee7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0xc]
mov edx, eax
xor edx, 0xce0a9b9e
and eax, 0xce0a9b9e
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xea
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0xc], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 7
jb 0x412eb0
lea eax, [esi + 0xc]
push eax
push dword [ebp + 8]
call fcn.00404520
add esp, 8
xor ecx, ecx
mov dword [esi + 0xd8], eax
test eax, eax
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44b730]
jmp dword [0x44b744]
mov eax, edi
inc eax
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0x7c]
add eax, 3
mov dword [esi + 0xf4], eax
mov eax, dword [esi + 0x50]
add eax, 2
mov dword [esi + 0xf0], eax
mov eax, dword [esi + 0xc0]
add eax, 2
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x80]
add eax, 3
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0x58]
add eax, 2
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0x88]
add eax, 2
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0xd4]
add eax, 3
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x8c]
add eax, 2
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 0x54]
add eax, 0x4a
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x94]
add eax, 3
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0x98]
add eax, 3
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x90]
add eax, 2
mov dword [esi + 0x118], eax
xor ebx, ebx
mov dword [esi + 0xb8], edi
jmp 0x412fe7
push dword [esi + 0xd8]
call fcn.00404730
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44b748]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret