Function at 0x43eb30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov edx, ecx
push ebx
push esi
push edi
mov eax, dword [edx + 0x48]
lea esi, [edx + 0x28]
mov ebx, dword [edx + 4]
add eax, 0x28
mov edi, dword [edx]
add eax, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 8], eax
test ebx, ebx
jne 0x43eb74
cmp edi, 0x20
jae 0x43eb74
add edi, dword [edx + 0x18]
adc ebx, dword [edx + 0x1c]
add edi, 0x165667c5
adc ebx, 0x27d4eb2f
jmp 0x43ed4b
mov esi, dword [edx + 0x10]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0x14]
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 0x18]
mov edx, ecx
shld edx, eax, 1
shld eax, ecx, 1
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, esi
shld eax, ebx, 7
shld ebx, esi, 7
mov esi, dword [ecx + 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0xc]
shld edi, eax, 0xc
mov dword [ebp - 4], edx
mov edx, eax
mov eax, dword [ecx + 0x18]
mov ecx, esi
shld edx, eax, 0xc
mov eax, dword [ebx + 0x24]
mov ebx, dword [ebp - 0x18]
shld ecx, eax, 0x12
shld eax, esi, 0x12
mov esi, dword [ebp - 4]
add esi, dword [ebp - 0x14]
mov dword [ebp - 4], esi
adc dword [ebp - 0x10], ebx
mov esi, dword [ebp - 0xc]
add dword [ebp - 4], edi
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
adc ebx, edx
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0xc]
add edi, ecx
push dword [esi + 8]
adc ebx, eax
call fcn.004566b0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.004566b0
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.004566b0
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0x14]
mov edi, eax
mov ebx, edx
push dword [esi + 0x10]
add edi, 0xc2b2ae63
adc ebx, 0x85ebca77
call fcn.004566b0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.004566b0
push 0x9e3779b1
xor eax, edi
xor edx, ebx
push 0x85ebca87
push edx
push eax
call fcn.004566b0
push 0xc2b2ae3d
mov edi, eax
mov ebx, edx
mov edx, dword [esi + 0x1c]
add edi, 0xc2b2ae63
mov eax, dword [esi + 0x18]
push 0x27d4eb4f
push edx
push eax
adc ebx, 0x85ebca77
call fcn.004566b0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.004566b0
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.004566b0
push 0xc2b2ae3d
mov ebx, edx
mov edi, eax
mov edx, dword [esi + 0x24]
add edi, 0xc2b2ae63
push 0x27d4eb4f
push edx
push dword [esi + 0x20]
adc ebx, 0x85ebca77
call fcn.004566b0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.004566b0
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.004566b0
add eax, dword [esi]
adc edx, dword [esi + 4]
add eax, 0xc2b2ae63
mov esi, dword [ebp - 0x1c]
mov edi, eax
adc edx, 0x85ebca77
mov ebx, edx
mov edx, dword [ebp - 0xc]
lea eax, [edx + 0x30]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 8]
ja 0x43edd1
nop word [eax + eax]
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.004566b0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.004566b0
mov ecx, eax
xor edx, ebx
xor ecx, edi
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0x1b
shld edx, ecx, 0x1b
push 0x85ebca87
push edx
push eax
call fcn.004566b0
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 0x10]
add edi, 0xc2b2ae63
adc ebx, 0x85ebca77
add eax, 8
add esi, 8
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 8]
jbe 0x43ed60
mov eax, dword [ebp - 8]
lea ecx, [esi + 4]
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
ja 0x43ee27
mov ecx, dword [esi]
mov eax, 0x9e3779b1
mul ecx
push 0xc2b2ae3d
mov esi, eax
mov eax, 0x85ebca87
mul ecx
push 0x27d4eb4f
add esi, edx
xor eax, edi
xor esi, ebx
mov ecx, eax
shld ecx, esi, 0x17
shld esi, eax, 0x17
push esi
push ecx
call fcn.004566b0
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov eax, dword [ebp - 8]
add edi, 0x9e3779f9
mov ebx, edx
adc ebx, 0x165667b1
cmp esi, eax
jae 0x43ee70
nop dword [eax + eax]
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.004566b0
mov ecx, eax
xor edx, ebx
xor ecx, edi
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0xb
shld edx, ecx, 0xb
push 0x85ebca87
push edx
push eax
call fcn.004566b0
inc esi
mov edi, eax
mov ebx, edx
cmp esi, dword [ebp - 8]
jb 0x43ee30
push 0xc2b2ae3d
xor eax, eax
mov ecx, ebx
push 0x27d4eb4f
shr ecx, 1
xor eax, ebx
xor ecx, edi
push eax
push ecx
call fcn.004566b0
mov esi, eax
mov ecx, edx
shrd esi, ecx, 0x1d
push 0x165667b1
shr ecx, 0x1d
xor esi, eax
push 0x9e3779f9
xor ecx, edx
push ecx
push esi
call fcn.004566b0
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret