Function at 0x421410
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x470
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x68], 0x33a631a3
mov dword [esp + 0x6c], 0x37973591
mov dword [esp + 0x70], 0x2b7429b5
mov dword [esp + 0x74], 0x2fa62d89
mov dword [esp + 0x78], 0x23222185
mov dword [esp + 0x7c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x17
ja 0x4214c5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x68]
mov edx, eax
and edx, 0xec16c388
xor eax, 0x6c16c388
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x48
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x18
jb 0x421480
lea edi, [esp + 0x68]
lea ecx, [esp + 0x54]
push edi
call fcn.004361c0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444210]
lea ecx, [esp + 0x54]
push 0x410
call fcn.00436440
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444218]
jmp dword [0x444224]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x54]
push 0
push 0x2b
push edi
push eax
call fcn.00436a60
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x18], ecx
cmp ebx, ecx
sete al
jmp dword [eax*4 + 0x444230]
mov eax, dword [case.0x4214d8.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x18]
sub eax, ebx
sar eax, 2
mov ecx, eax
and ecx, 0x421
mov edx, eax
or eax, 0x421
imul eax, ecx
xor ecx, 0x421
and edx, 0xfffffbde
imul edx, ecx
add eax, edx
push eax
call fcn.00409230
add esp, 4
mov ecx, dword [case.0x4214d8.21]
nop
nop
nop
jmp ecx
mov dword [esp + 0x4c], 0
lea ecx, [esp + 0x69]
mov dword [esp + 0x60], ecx
xor ecx, ecx
cmp ebx, dword [esp + 0x18]
setne cl
mov dword [esp + 0x3c], eax
mov esi, eax
jmp dword [ecx*4 + 0x444268]
jmp dword [0x444278]
jmp dword [0x444240]
xor esi, esi
test ebx, ebx
jne 0x421b59
jmp 0x421b68
mov dword [esp + 0x44], esi
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.00409460
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x54]
push eax
push 0x400
push edi
push esi
call fcn.004368d0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
xor eax, eax
jmp dword [ecx*4 + 0x4442a0]
cmp ebx, dword [esp + 0x18]
je 0x421b68
push ebx
call fcn.00409240
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x54]
call fcn.00436580
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x68], 0x720b4471
mov dword [esp + 0x6c], 0x4c721174
mov dword [esp + 0x70], 0x7871731d
mov dword [esp + 0x74], 0x776e7619
mov dword [esp + 0x78], 0x54030276
mov dword [esp + 0x7c], 0x6f000601
mov dword [esp + 0x80], 0x6a6d0e6a
mov dword [esp + 0x84], 0x166f6803
mov dword [esp + 0x88], 0x76040602
mov dword [esp + 0x8c], 0x1e7b5905
mov dword [esp + 0x90], 0xa3527d7d
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov word [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x35
ja case.0x4214d8.5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x68]
mov edx, eax
and edx, 0x6d470a2
xor eax, 0x86d470a2
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x92
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x36
jb 0x421c20
mov dword [esp + 0x68], 0x720b4471
mov dword [esp + 0x6c], 0x4c721174
mov dword [esp + 0x70], 0x7871731d
mov dword [esp + 0x74], 0x776e7619
mov dword [esp + 0x78], 0x54030276
mov dword [esp + 0x7c], 0x6f000601
mov dword [esp + 0x80], 0x6a6d0e6a
mov dword [esp + 0x84], 0x166f6803
mov dword [esp + 0x88], 0x76040602
mov dword [esp + 0x8c], 0x1e7b5905
mov dword [esp + 0x90], 0xa3527d7d
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov word [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x35
ja 0x421d5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x68]
mov edx, eax
and edx, 0x6d470a2
xor eax, 0x86d470a2
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x92
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x36
jb 0x421d10
jmp dword [0x44422c]