Function at 0x421410
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
and dword [0x458d04], 0x642d0112
mov ecx, 0xa6c6b793
movzx eax, word [0x46b774]
imul eax, eax, 0xdc64a563
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov word [0x46b774], ax
dec word [0x467b8a]
movzx eax, word [0x467b8a]
cwde
sub ecx, eax
or ecx, dword [0x461664]
mov dword [0x461664], ecx
cmp ebx, esi
jne 0x4214d0
movzx eax, word [0x46c216]
mov edx, ebx
mov esi, dword [ebp + 0xc]
add eax, 0x1121820d
mov word [0x46c216], ax
dec dword [0x45f1d0]
mov eax, dword [0x45f1d0]
mov ecx, dword [0x45f540]
or ecx, eax
xor dword [0x466c0c], ecx
mov ecx, dword [0x462e40]
mov eax, dword [0x45a790]
xor ecx, eax
mov eax, dword [0x463fb8]
inc dword [0x463fb8]
xor eax, ecx
cmp eax, 0xffff9eff
jne 0x4214ba
and dword [0x459c40], 0xd8216bd3
movsx eax, word [0x46bcce]
lea eax, [eax*8 - 0x27e3f6a8]
or dword [0x4657ac], eax
jmp 0x4214d3
mov edx, dword [ebp + 0xc]
or dword [0x460a34], 0xbbfed762
cmp ebx, edx
je 0x4214f3
push edx
push ebx
call fcn.00415050
add esp, 8
test eax, eax
jne 0x4217ec
mov eax, dword [0x457f34]
mov ecx, 0xd98deb69
sub ecx, eax
movzx eax, word [0x46d7d6]
xor eax, ecx
push edi
mov word [0x46d7d6], ax
mov edi, dword [esi + 4]
dec edi
js 0x42152b
mov eax, dword [esi + 8]
lea eax, [eax + edi*4]
jmp 0x421520
cmp dword [eax], 0
jne 0x42152b
sub eax, 4
dec edi
jns 0x421520
add dword [0x45a254], 0x3b2a80a4
lea eax, [edi + 1]
push eax
push ebx
call fcn.0041ba50
mov ecx, eax
add esp, 8
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4217e9
mov eax, 0xffffb7dd
mov word [0x469bec], ax
mov eax, dword [esi + 8]
add dword [0x45b588], 0x8894200b
mov edx, dword [ebx + 8]
mov dword [ebp + 0x10], eax
mov eax, dword [0x459c2c]
and eax, 0x7f0b3d26
cmp eax, 0x1f0ebd8f
jle 0x421590
movsx eax, word [0x468ad4]
add eax, 0x4a59e457
and dword [0x4650a8], eax
dec dword [0x45be2c]
xor esi, esi
mov eax, dword [0x45be2c]
imul eax, eax, 0xd2aa1e2c
cmp eax, 0x5733cf97
je 0x4215bc
movzx eax, word [0x46a0ba]
and eax, 0x51ae1b39
mov word [0x46a0ba], ax
test edi, edi
js 0x4217b6
sub dword [ebp + 0x10], edx
lea ebx, [edi + 1]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], ebx
mov eax, dword [0x466eb4]
imul eax, dword [0x45c0f8]
imul eax, eax, 0x91f07994
mov dword [0x45c0f8], eax
inc dword [0x466eb4]
add dword [edx], esi
mov ecx, dword [0x45d344]
mov eax, dword [0x458b94]
not ecx
imul eax, ecx
mov dword [0x458b94], eax
cmp dword [edx], esi
mov ecx, dword [0x460220]
movzx eax, word [0x46ec00]
sbb esi, esi
and ecx, 0x8baf949e
neg esi
xor eax, ecx
mov word [0x46ec00], ax
mov eax, dword [edi + edx]
add dword [edx], eax
movsx eax, word [0x46b2a2]
not eax
imul eax, eax, 0xfcbd778a
or eax, 0x29ca7946
add dword [0x464474], eax
mov eax, dword [edx]
cmp eax, dword [edi + edx]
sbb eax, eax
dec dword [0x45f860]
mov ecx, dword [0x45f860]
neg eax
dec dword [0x45a818]
add esi, eax
mov eax, dword [0x45a818]
add edx, 4
imul ecx, ecx, 0x937b8816
xor ecx, eax
sub dword [0x45cb50], ecx
dec ebx
jne 0x4215d0
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
test esi, esi
je 0x4217b3
lea esp, [esp]
movsx ecx, word [0x4684b2]
mov eax, dword [0x463fac]
and ecx, 0x28293304
imul eax, ecx
mov dword [0x463fac], eax
cmp edi, dword [ebx + 4]
jl 0x42170c
mov eax, dword [0x467050]
add eax, 0x178c8829
xor eax, 0x6cb697ea
cmp dword [0x463c98], eax
jle 0x4216d0
mov dword [0x45d660], 0x98c15df6
lea eax, [edi + 1]
push eax
push ebx
call fcn.0041ba50
mov ecx, eax
add esp, 8
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4217e9
mov eax, 0x883
mov word [0x4676d4], ax
mov eax, dword [ebx + 8]
lea edx, [eax + edi*4]
imul eax, dword [0x46541c], 0x845c69cc
mov dword [0x46541c], eax
jmp 0x42170f
mov ecx, dword [ebp + 0xc]
movzx eax, word [0x46ca2c]
and eax, 0x33fc0be1
mov word [0x46ca2c], ax
add dword [edx], esi
mov eax, dword [0x45cb9c]
sub eax, 0xd659da8
cmp eax, 0x101e8793
jge 0x421749
movzx eax, word [0x46d742]
imul eax, eax, 0x36969023
mov word [0x46d742], ax
jmp 0x42175b
movzx eax, word [0x46ce58]
or eax, 0x4419e872
mov word [0x46ce58], ax
cmp dword [edx], esi
mov eax, dword [0x464078]
sbb esi, esi
xor eax, 0x2da43b36
neg esi
cmp eax, 0x19822202
jl 0x42178d
dec dword [0x45eaa8]
mov eax, dword [0x45eaa8]
add eax, 0xd2a4a657
or eax, dword [0x461f6c]
mov dword [0x461f6c], eax
mov eax, dword [0x45af8c]
inc edi
and eax, 0x13ddd9ce
cmp eax, 0x600df31a
jg 0x4217a9
add dword [0x46515c], 0xf2da48ee
test esi, esi
jne 0x421690
jmp 0x4217b6
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x45c4d0]
or eax, 0xe0ff1a02
cmp eax, 0x268804c0
jg 0x4217e9
mov eax, dword [0x4651cc]
mov ecx, 0x677d4c16
sub ecx, eax
mov eax, dword [ebp + 0xc]
pop edi
xor ecx, 0x14bc7045
or dword [0x45d910], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret