Function at 0x430846
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 4], edx
push edi
mov dword [ebp - 0xc], esi
mov ecx, 0x165667c5
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
ja 0x43087d
cmp eax, 0x20
jae 0x43087d
add ebx, ecx
adc edi, 0x27d4eb2f
jmp 0x430923
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
shld ecx, eax, 1
shld eax, edx, 1
mov edx, dword [esi + 8]
mov dword [ebp - 0x14], eax
mov eax, edx
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0xc]
shld eax, ecx, 7
shld ebx, edi, 0xc
mov dword [ebp - 0x10], eax
mov eax, ecx
shld eax, edx, 7
mov edx, dword [esi + 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x10]
shld edi, eax, 0xc
mov eax, dword [esi + 0x1c]
mov esi, edx
push eax
shld esi, eax, 0x12
push edx
mov ecx, eax
mov eax, dword [ebp - 0xc]
shld ecx, edx, 0x12
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x10]
push dword [eax + 0x14]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 0x14]
adc eax, dword [ebp - 0x18]
add edx, ebx
adc eax, edi
add edx, esi
adc eax, ecx
push eax
push edx
call fcn.00430642
add esp, 0x10
push edx
push eax
call fcn.00430642
add esp, 0x10
push edx
push eax
call fcn.00430642
add esp, 0x10
push edx
push eax
call fcn.00430642
mov ebx, eax
mov edi, edx
mov eax, dword [ebp + 8]
add esp, 0x10
mov edx, dword [ebp - 4]
add ebx, eax
adc edi, dword [ebp + 0xc]
and eax, 0x1f
mov dword [ebp - 8], eax
cmp eax, 8
jb 0x4309d1
shr eax, 3
mov dword [ebp - 0xc], eax
jmp 0x430942
mov edx, dword [ebp - 4]
imul esi, dword [edx + 4], 0x27d4eb4f
mov eax, dword [edx]
mov edx, 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc esi, edx
add dword [ebp - 4], 8
shld eax, esi, 0x1f
shld esi, ecx, 0x1f
mov edx, 0x85ebca87
imul ecx, esi, 0x7a143579
imul esi, eax, 0x9e3779b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ecx, ebx
xor esi, edi
mov eax, ecx
shld eax, esi, 0x1b
shld esi, ecx, 0x1b
imul edi, eax, 0x9e3779b1
xor ebx, ebx
imul ecx, esi, 0x7a143579
sub edi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
mov eax, dword [ebp - 8]
adc edi, edx
add ebx, 0xc2b2ae63
adc edi, 0x85ebca77
sub eax, 8
sub dword [ebp - 0xc], 1
mov dword [ebp - 8], eax
jne 0x43093f
cmp eax, 4
jb 0x430a32
mov ecx, dword [ebp - 4]
mov edx, 0x85ebca87
mov eax, dword [ecx]
add ecx, 4
imul esi, eax, 0x9e3779b1
mul edx
mov dword [ebp - 4], ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ecx, ebx
xor esi, edi
mov eax, ecx
shld eax, esi, 0x17
shld esi, ecx, 0x17
imul ecx, eax, 0x3d4d51c3
xor ebx, ebx
imul edi, esi, 0x27d4eb4f
sub edi, ecx
mov ecx, 0x27d4eb4f
mul ecx
add ebx, eax
mov eax, dword [ebp - 8]
adc edi, edx
add ebx, 0x9e3779f9
adc edi, 0x165667b1
sub eax, 4
mov dword [ebp - 8], eax
test eax, eax
je 0x430a82
mov ecx, dword [ebp - 4]
mov edx, 0x165667c5
movzx eax, byte [ecx]
inc ecx
imul esi, eax, 0x27d4eb2f
mul edx
mov dword [ebp - 4], ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ecx, ebx
xor esi, edi
mov eax, ecx
shld eax, esi, 0xb
shld esi, ecx, 0xb
imul edi, eax, 0x9e3779b1
xor ebx, ebx
imul ecx, esi, 0x7a143579
sub edi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
adc edi, edx
sub dword [ebp - 8], 1
jne 0x430a36
mov eax, edi
mov ecx, 0x27d4eb4f
shr eax, 1
xor edi, 0
xor ebx, eax
imul esi, edi, 0x27d4eb4f
imul eax, ebx, 0x3d4d51c3
xor edi, edi
sub esi, eax
mov eax, ebx
mul ecx
add edi, eax
mov ecx, edi
adc esi, edx
mov edx, esi
shrd ecx, edx, 0x1d
shr edx, 0x1d
xor edi, ecx
xor esi, edx
mov eax, edi
imul ecx, esi, 0x61c88607
mov edx, 0x9e3779f9
imul esi, edi, 0x165667b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
pop edi
adc esi, edx
xor edx, edx
mov eax, esi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
leave
ret