Function at 0x428bd5
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, edx
and edx, 0xf
mov dword [esp + 0x10], ecx
and eax, 0xfffffff0
mov dword [esp + 0x14], edx
test eax, eax
mov dword [esp + 0xc], eax
je 0x428cd9
neg eax
mov ebp, 0x452821e6
mov esi, 0x38d01376
mov dword [esp], ecx
mov dword [esp + 0x1c], eax
mov eax, esi
mov ecx, 0x4c957f2d
imul edi, ebp, 0x4c957f2d
mul ecx
mov ecx, dword [esp]
mov ebx, eax
imul eax, esi, 0x5851f42d
add edi, eax
mov eax, 0xc97c50de
add edi, edx
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov ebp, dword [ecx + 4]
mov dword [esp + 4], esi
xor esi, 0x3f84d5b5
xor edx, eax
mov eax, 0xc0ac29b7
bswap esi
xor ebp, eax
mov dword [esp + 8], edx
mov eax, esi
mov ecx, esi
mul edx
imul ecx, ebp
bswap ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp]
add edx, ecx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 4]
mov esi, ecx
xor eax, 0xc07b2a4a
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
imul eax, ebp
bswap esi
mov dword [esp + 4], eax
mov eax, ebp
mov ebp, dword [esp + 8]
imul esi, dword [esp + 8]
bswap ebp
add esi, edx
mul ecx
imul ecx, ebp
add edx, dword [esp + 4]
bswap eax
add ecx, edx
add ebx, 0xfe40ff3e
adc edi, 0x4373a9a3
xor ebx, dword [esp + 0x18]
bswap ecx
add dword [esp], 0x10
xor edi, eax
mov eax, dword [esp + 0x1c]
xor edi, esi
mov ebp, edi
xor ebx, ecx
shld ebp, ebx, 0x17
shld ebx, edi, 0x17
add eax, 0x10
mov esi, ebx
jne 0x428c07
jmp 0x428ce3
mov ebp, 0x452821e6
mov ebx, 0x38d01376
mov edi, dword [esp + 0x14]
test edi, edi
je 0x428dd0
mov esi, dword [esp + 0x10]
mov eax, 0x10
lea ecx, [esp + edi + 0x20]
sub eax, edi
add esi, dword [esp + 0xc]
push eax
push 0
push ecx
call fcn.0042dee0
add esp, 0xc
lea eax, [esp + 0x20]
push edi
push esi
push eax
mov esi, eax
call fcn.0042c2f0
add esp, 0xc
mov ecx, 0x4c957f2d
mov eax, ebx
mov edi, 0xc0ac29b7
mul ecx
imul ecx, ebx, 0x5851f42d
xor edi, dword [esi + 4]
add ecx, edx
imul edx, ebp, 0x4c957f2d
mov ebp, 0xc97c50de
mov ebx, eax
add edx, ecx
mov ecx, esi
xor ebp, dword [esi]
mov dword [esp + 4], edx
mov edx, dword [esi + 0xc]
mov ecx, edx
mov dword [esp], edx
xor ecx, 0x3f84d5b5
bswap ecx
mov eax, ecx
mov esi, ecx
mul ebp
imul esi, edi
bswap edi
mov dword [esp + 8], eax
lea eax, [esp + 0x20]
add edx, esi
mov ecx, dword [eax + 8]
mov eax, dword [esp]
mov esi, ecx
xor eax, 0xc07b2a4a
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
imul eax, edi
bswap esi
mov dword [esp], eax
mov eax, edi
mov edi, dword [esp + 4]
imul esi, ebp
bswap ebp
add esi, edx
mul ecx
imul ecx, ebp
add edx, dword [esp]
bswap eax
add ecx, edx
add ebx, 0xfe40ff3e
adc edi, 0x4373a9a3
xor ebx, dword [esp + 8]
bswap ecx
xor edi, eax
xor edi, esi
mov ebp, edi
xor ebx, ecx
shld ebp, ebx, 0x17
shld ebx, edi, 0x17
mov ecx, 0xcf6654be
mov eax, ebx
imul esi, ebp, 0xcf6654be
bswap ebp
mul ecx
mov ecx, ebx
mov dword [esp], eax
imul eax, ebx, 0x6e0ce934
bswap ecx
add eax, edx
mov edx, 0xcb16f391
imul edi, ecx, 0xcb16f391
mov ecx, ebx
add esi, eax
mov eax, ebp
imul ebp, ebp, 0x41ab9930
mul edx
add ebp, edx
bswap eax
add edi, ebp
xor eax, esi
bswap edi
mov edx, eax
xor edi, dword [esp]
test bl, 0x20
cmovne edx, edi
cmovne edi, eax
mov eax, edi
shld eax, edx, cl
shld edx, edi, cl
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret