Function at 0x42fded
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x3c], ecx
shr ecx, 0x1c
add ecx, eax
sar ecx, 4
mov dword [esp], ecx
mov ebx, 0x87c37b91
mov ebp, 0x114253d5
mov dword [esp + 4], 0
mov edx, 0
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0
cmp eax, 0x10
jl 0x42ff8c
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x54]
add eax, 8
mov esi, dword [esp]
mov dword [esp + 0xc], edi
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 8], eax
mov esi, dword [eax - 8]
mov eax, esi
mul ebp
mov eax, 0x114253d5
mov ebp, esi
imul ebp, ebx
add ebp, edx
mov edx, dword [esp + 8]
mov ebx, dword [edx - 4]
mov ecx, edi
mov dword [esp + 0x18], edi
mov edi, ebx
imul edi, eax
mov eax, esi
mov edx, 0x80000000
mul edx
add edi, ebp
mov ebp, 0x88a129ea
imul esi, ebp
add esi, edx
mov edx, 0x80000000
imul ebx, edx
add ebx, esi
shr edi, 1
or eax, edi
mov esi, eax
mov edx, 0x4cf5ad43
imul esi, edx
mov edi, 0x2745937f
mul edi
add esi, edx
imul ebx, edi
add ebx, esi
xor ebx, dword [esp + 0x10]
xor eax, dword [esp + 0xc]
mov esi, ebx
shld esi, eax, 0x1b
shld eax, ebx, 0x1b
add eax, ecx
adc esi, dword [esp + 0x14]
mov ecx, 5
mul ecx
lea esi, [esi + esi*4]
mov edi, eax
add edi, 0x52dce729
mov dword [esp + 0xc], edi
mov ecx, edx
adc ecx, esi
mov eax, dword [esp + 8]
mov ebp, dword [eax]
mov eax, ebp
mov edx, 0x2745937f
mul edx
mov esi, ebp
mov ebx, 0x4cf5ad43
imul esi, ebx
add esi, edx
mov edx, dword [esp + 8]
mov ebx, dword [edx + 4]
mov edx, 0x2745937f
imul ebx, edx
add ebx, esi
shrd eax, ebx, 0x1f
mov edx, 0x4e8b26fe
imul ebp, edx
shr ebx, 0x1f
or ebx, ebp
mov ebp, 0x114253d5
mov esi, eax
mov edx, 0x87c37b91
imul esi, edx
mul ebp
add esi, edx
imul ebx, ebp
add ebx, esi
xor ebx, dword [esp + 0x14]
xor eax, dword [esp + 0x18]
mov edx, ebx
shld edx, eax, 0x1f
shld eax, ebx, 0x1f
mov ebx, 0x87c37b91
add eax, edi
mov dword [esp + 0x10], ecx
adc edx, ecx
lea esi, [edx + edx*4]
mov ecx, 5
mul ecx
mov edi, eax
mov eax, dword [esp + 8]
add edi, 0x38495ab5
adc edx, esi
mov esi, dword [esp + 0x1c]
add eax, 0x10
dec esi
jne 0x42fe54
mov ecx, dword [esp + 0x58]
and ecx, 0xf
dec ecx
cmp ecx, 0xe
ja 0x43027c
mov dword [esp + 0x14], edx
mov ebx, dword [esp]
shl ebx, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 8], 0
xor edx, edx
xor ebp, ebp
xor esi, esi
mov eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp], eax
jmp dword [ecx*4 + 0x4676bc]
mov ecx, dword [esp + 0x3c]
xor ebp, ecx
mov eax, dword [esp + 0x58]
xor esi, eax
xor edx, ecx
xor edi, eax
add esi, edi
adc ebp, edx
add edi, esi
adc edx, ebp
mov eax, esi
imul esi, ebp, 0xed558ccd
shr ebp, 1
xor ebp, eax
mov ebx, 0xed558ccd
mov eax, ebp
mov ecx, edx
mul ebx
mov ebx, edi
imul edi, ebp, 0xff51afd7
add edi, edx
add edi, esi
imul ebp, edi, 0x1a85ec53
shr edi, 1
xor edi, eax
mov edx, 0x1a85ec53
mov eax, edi
mul edx
imul esi, edi, 0xc4ceb9fe
add esi, edx
add esi, ebp
mov edi, esi
shr edi, 1
xor edi, eax
imul ebp, ecx, 0xed558ccd
shr ecx, 1
xor ecx, ebx
mov eax, ecx
mov edx, 0xed558ccd
mul edx
imul ecx, ecx, 0xff51afd7
add ecx, edx
add ecx, ebp
imul ebp, ecx, 0x1a85ec53
shr ecx, 1
xor ecx, eax
mov eax, ecx
mov edx, 0x1a85ec53
mul edx
imul ecx, ecx, 0xc4ceb9fe
add ecx, edx
add ecx, ebp
mov edx, ecx
shr edx, 1
xor edx, eax
add edi, edx
adc esi, ecx
add edx, edi
adc ecx, esi
mov eax, dword [esp + 0x60]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x4301bf