Function at 0x42de50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
and dword [0x440f24], 0xeae34f67
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
mov eax, esi
cdq
and edx, 0x1f
mov dword [0x437d04], 0x5597c733
xor dword [0x438024], 0xdfd7bf3f
push edi
push ebx
lea edi, [edx + eax]
mov dword [ebp - 8], 0
imul eax, dword [0x436ef4], 0x5016f4d0
sar edi, 5
mov dword [ebp + 0xc], edi
mov dword [0x436ef4], eax
mov eax, esi
and dword [0x43b4c0], 0xdd9d585f
and eax, 0x1f
mov dword [ebp - 4], eax
call fcn.00423950
xor dword [0x4400c4], 0xaa0342a9
add eax, esi
mov ecx, dword [ebx + 4]
add esp, 4
shl ecx, 5
cmp ecx, eax
jge 0x42def1
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
push ebx
call fcn.00415b50
add esp, 8
test eax, eax
jne 0x42e115
add dword [0x441d70], 0x25c01019
add dword [0x446de0], 0x3b8e69d0
test edi, edi
jle 0x42dfeb
add dword [0x446f48], 0xad6e1b27
mov eax, dword [ebx + 4]
dec eax
cmp eax, edi
jl 0x42df38
mov esi, eax
sub esi, edi
shl esi, 2
mov edx, dword [ebx + 8]
lea esi, [esi - 4]
mov ecx, dword [esi + edx + 4]
mov dword [edx + eax*4], ecx
dec eax
cmp eax, edi
jge 0x42df26
inc dword [0x4398d8]
mov edx, 0xb5235230
mov edi, dword [0x4398d8]
movsx ecx, word [0x44b280]
mov esi, dword [0x43aa30]
shl ecx, 0xa
xor ecx, 0x61fc34d9
sar esi, 5
or esi, ecx
mov ecx, dword [0x4474e0]
sub edx, ecx
and edx, edi
cmp edx, esi
jne 0x42df8c
mov edx, dword [0x4390a4]
mov ecx, dword [0x437470]
shl edx, 8
imul ecx, edx
add dword [0x43e304], ecx
jmp 0x42dfad
cmp dword [0x43df08], 0x9467b64d
je 0x42dfad
mov cx, word [0x44c97c]
mov cx, word [0x44d586]
dec word [0x44c97c]
test eax, eax
js 0x42dfbe
mov ecx, dword [ebx + 8]
mov dword [ecx + eax*4], 0
dec eax
jns 0x42dfb1
inc dword [0x437378]
mov ecx, dword [0x437378]
mov eax, dword [0x439cf8]
mov edi, dword [ebp + 0xc]
xor eax, 0x4545
or eax, 0xf97d981a
cmp eax, ecx
jl 0x42dfeb
mov eax, 0xffffb1db
mov word [0x44ae5a], ax
mov eax, dword [0x438ad0]
inc dword [0x438ad0]
and eax, 0xb7923801
cmp eax, 0xbfbfcfb5
jge 0x42e012
mov eax, dword [0x440e04]
xor eax, 0xf2f22d2c
add dword [0x439454], eax
mov ecx, dword [ebp - 4]
test ecx, ecx
jle 0x42e109
mov eax, dword [0x439a80]
xor eax, 0xdbffbefd
or eax, 0x89baa6d9
mov word [0x449736], ax
cmp edi, dword [ebx + 4]
jge 0x42e0cd
mov esi, 0x20
sub esi, ecx
jmp 0x42e050
and dword [0x444084], 0xd4fb199a
mov ecx, esi
mov eax, dword [ebx + 8]
mov edx, dword [eax + edi*4]
mov eax, 0xffffbd31
mov word [0x44fd9e], ax
mov eax, dword [ebx + 8]
shr edx, cl
mov ecx, dword [ebp - 4]
shl dword [eax + edi*4], cl
inc word [0x44969a]
mov ax, word [0x44969a]
mov ecx, dword [ebp - 8]
cwde
sub dword [0x440c78], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 8], edx
or dword [eax + edi*4], ecx
inc edi
mov eax, dword [0x4406f8]
xor eax, 0x55c570d0
add dword [0x444654], eax
dec dword [0x4467c4]
mov eax, dword [0x4467c4]
mov ecx, dword [0x4363ac]
and ecx, eax
and ecx, 0x416551f3
mov dword [0x4363ac], ecx
cmp edi, dword [ebx + 4]
jl 0x42e050
movsx eax, word [0x44bc4c]
inc word [0x44bc4c]
cmp eax, 0x73b4c450
jne 0x42e0ff
or dword [0x43fbc0], 0x19b1d3a9
add dword [0x4464cc], 0xc600440
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x441a50], 0xfccf6edf
add dword [0x4464cc], 0xc600440
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret