Function at 0x439830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 0x10]
mov dword [ebp - 0x14], ecx
test edx, edx
jne 0x439869
cmp eax, 0x20
jae 0x439869
add ebx, eax
adc ecx, edx
add ebx, 0x165667c5
adc ecx, 0x27d4eb2f
jmp 0x439ab5
mov esi, dword [edi]
mov eax, esi
mov edx, dword [edi + 4]
mov ebx, edx
shld eax, edx, 1
mov edx, dword [edi + 8]
shld ebx, esi, 1
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0xc]
mov edi, edx
shld edi, eax, 7
mov esi, eax
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp + 8]
shld esi, edx, 7
mov ebx, dword [ebp + 8]
mov edx, dword [eax + 0x10]
mov eax, edx
shld eax, ecx, 0xc
mov dword [ebp - 4], eax
mov eax, ecx
mov ecx, dword [ebp + 8]
shld eax, edx, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov edx, ecx
shld eax, ecx, 0x12
mov ecx, dword [ebx + 0x18]
mov ebx, dword [ebp - 0x10]
shld edx, ecx, 0x12
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
adc dword [ebp - 8], ebx
add dword [ebp - 4], edi
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 8]
adc ebx, esi
add dword [ebp - 4], eax
mov eax, dword [ecx]
adc ebx, edx
imul edi, dword [ecx + 4], 0x27d4eb4f
xor esi, esi
imul edx, eax, 0x3d4d51c3
mov ecx, 0x27d4eb4f
sub edi, edx
mul ecx
mov ecx, 0x85ebca87
add esi, eax
mov eax, esi
adc edi, edx
shld eax, edi, 0x1f
shld edi, esi, 0x1f
xor esi, esi
imul edx, edi, 0x7a143579
imul edi, eax, 0x9e3779b1
sub edi, edx
mul ecx
add esi, eax
mov eax, dword [ebp - 4]
adc edi, edx
xor eax, esi
xor ebx, edi
xor esi, esi
imul edx, ebx, 0x7a143579
imul ebx, eax, 0x9e3779b1
sub ebx, edx
mul ecx
mov ecx, 0x27d4eb4f
add esi, eax
adc ebx, edx
mov edx, dword [ebp + 8]
add esi, 0xc2b2ae63
mov dword [ebp - 0x10], esi
adc ebx, 0x85ebca77
imul edi, dword [edx + 0xc], 0x27d4eb4f
mov eax, dword [edx + 8]
imul edx, eax, 0x3d4d51c3
sub edi, edx
xor esi, esi
mul ecx
mov ecx, 0x85ebca87
add esi, eax
mov eax, esi
adc edi, edx
shld eax, edi, 0x1f
shld edi, esi, 0x1f
xor esi, esi
imul edx, edi, 0x7a143579
imul edi, eax, 0x9e3779b1
sub edi, edx
mul ecx
add esi, eax
mov eax, dword [ebp - 0x10]
adc edi, edx
xor eax, esi
xor ebx, edi
imul edi, eax, 0x9e3779b1
imul edx, ebx, 0x7a143579
xor ebx, ebx
sub edi, edx
mul ecx
mov ecx, dword [ebp + 8]
add ebx, eax
adc edi, edx
add ebx, 0xc2b2ae63
mov eax, dword [ecx + 0x10]
mov edx, 0x27d4eb4f
adc edi, 0x85ebca77
imul esi, dword [ebp - 0x14], 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc esi, edx
mov edx, 0x85ebca87
shld eax, esi, 0x1f
shld esi, ecx, 0x1f
imul ecx, esi, 0x7a143579
imul esi, eax, 0x9e3779b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ebx, ecx
xor edi, esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x14]
imul ecx, edi, 0x7a143579
imul edi, ebx, 0x9e3779b1
xor ebx, ebx
sub edi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
adc edi, edx
mov edx, dword [ebp + 8]
add ebx, 0xc2b2ae63
adc edi, 0x85ebca77
imul esi, dword [edx + 0x1c], 0x27d4eb4f
mov eax, dword [edx + 0x18]
mov edx, 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc esi, edx
mov edx, 0x85ebca87
shld eax, esi, 0x1f
shld esi, ecx, 0x1f
imul ecx, esi, 0x7a143579
imul esi, eax, 0x9e3779b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ebx, ecx
xor edi, esi
imul ecx, ebx, 0x9e3779b1
imul edx, edi, 0x7a143579
mov eax, ebx
xor ebx, ebx
sub ecx, edx
mov edx, 0x85ebca87
mul edx
add ebx, eax
mov eax, dword [ebp + 0x10]
adc ecx, edx
add ebx, eax
adc ecx, dword [ebp + 0x14]
add ebx, 0xc2b2ae63
adc ecx, 0x85ebca77
and eax, 0x1f
mov dword [ebp - 4], eax
cmp eax, 8
jb 0x439b62
shr eax, 3
mov dword [ebp - 8], eax
lea ebx, [ebx]
mov edx, dword [ebp + 0xc]
xor esi, esi
imul edi, dword [edx + 4], 0x27d4eb4f
mov eax, dword [edx]
imul edx, eax, 0x3d4d51c3
sub edi, edx
mov edx, 0x27d4eb4f
mul edx
add esi, eax
mov eax, esi
adc edi, edx
add dword [ebp + 0xc], 8
shld eax, edi, 0x1f
shld edi, esi, 0x1f
xor esi, esi
imul edx, edi, 0x7a143579
imul edi, eax, 0x9e3779b1
sub edi, edx
mov edx, 0x85ebca87
mul edx
add esi, eax
adc edi, edx
xor esi, ebx
xor edi, ecx
mov eax, esi
shld eax, edi, 0x1b
shld edi, esi, 0x1b
imul ecx, eax, 0x9e3779b1
xor ebx, ebx
imul edx, edi, 0x7a143579
sub ecx, edx
mov edx, 0x85ebca87
mul edx
add ebx, eax
mov eax, dword [ebp - 4]
adc ecx, edx
add ebx, 0xc2b2ae63
adc ecx, 0x85ebca77
sub eax, 8
sub dword [ebp - 8], 1
mov dword [ebp - 4], eax
jne 0x439ad0
cmp eax, 4
jb 0x439bc3
mov edx, dword [ebp + 0xc]
xor esi, esi
mov eax, dword [edx]
add edx, 4
imul edi, eax, 0x9e3779b1
mov dword [ebp + 0xc], edx
mov edx, 0x85ebca87
mul edx
add esi, eax
adc edi, edx
xor esi, ebx
xor edi, ecx
mov eax, esi
shld eax, edi, 0x17
shld edi, esi, 0x17
imul edx, eax, 0x3d4d51c3
xor ebx, ebx
imul ecx, edi, 0x27d4eb4f
sub ecx, edx
mov edx, 0x27d4eb4f
mul edx
add ebx, eax
mov eax, dword [ebp - 4]
adc ecx, edx
add ebx, 0x9e3779f9
adc ecx, 0x165667b1
sub eax, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x439c13
mov edx, dword [ebp + 0xc]
xor esi, esi
movzx eax, byte [edx]
inc edx
imul edi, eax, 0x27d4eb2f
mov dword [ebp + 0xc], edx
mov edx, 0x165667c5
mul edx
add esi, eax
adc edi, edx
xor esi, ebx
xor edi, ecx
mov eax, esi
shld eax, edi, 0xb
shld edi, esi, 0xb
imul ecx, eax, 0x9e3779b1
xor ebx, ebx
imul edx, edi, 0x7a143579
sub ecx, edx
mov edx, 0x85ebca87
mul edx
add ebx, eax
adc ecx, edx
sub dword [ebp - 4], 1
jne 0x439bc7
mov eax, ecx
xor edi, edi
shr eax, 1
xor ecx, 0
xor ebx, eax
imul esi, ecx, 0x27d4eb4f
imul eax, ebx, 0x3d4d51c3
mov ecx, 0x27d4eb4f
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
mov esp, ebp
pop ebp
ret