Function at 0x43fa20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov ecx, dword [eax + 0x48]
lea edx, [ecx + eax + 0x28]
mov ecx, dword [eax + 4]
push ebx
push esi
mov dword [esp + 8], edx
mov edx, dword [eax]
push edi
lea esi, [eax + 0x28]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
test ecx, ecx
ja 0x43fa54
cmp edx, 0x20
jb 0x43fb4c
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ecx, ebx
mov eax, edi
shld eax, ecx, 1
shld ecx, edi, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
mov edx, eax
shld edx, ecx, 7
shld ecx, eax, 7
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
mov edx, eax
shld edx, ecx, 0xc
shld ecx, eax, 0xc
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov ecx, eax
shld ecx, edx, 0x12
shld edx, eax, 0x12
mov eax, dword [esp + 0x14]
add ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
adc edx, dword [esp + 0x30]
add ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x24]
adc edx, dword [esp + 0x3c]
add ecx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x24]
adc edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push eax
push ebx
push edi
push edx
push ecx
call fcn.0043f620
add esp, 0x10
push edx
push eax
call fcn.0043f620
add esp, 0x10
push edx
push eax
call fcn.0043f620
add esp, 0x10
push edx
push eax
call fcn.0043f620
mov ecx, dword [esp + 0x54]
mov edi, edx
mov edx, dword [esp + 0x50]
add esp, 0x10
mov ebx, eax
jmp 0x43fb5e
mov ebx, dword [eax + 0x18]
mov edi, dword [eax + 0x1c]
add ebx, 0x165667c5
adc edi, 0x27d4eb2f
add ebx, edx
lea eax, [esi + 8]
adc edi, ecx
cmp eax, dword [esp + 0xc]
ja 0x43fbea
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 0xc2b2ae3d
push 0x27d4eb4f
push ecx
push eax
call fcn.005e5470
mov ecx, eax
mov eax, edx
mov edx, ecx
shld edx, eax, 0x1f
push 0x9e3779b1
shld eax, ecx, 0x1f
push 0x85ebca87
push eax
push edx
call fcn.005e5470
xor eax, ebx
xor edx, edi
mov ecx, eax
shld ecx, edx, 0x1b
push 0x9e3779b1
shld edx, eax, 0x1b
push 0x85ebca87
push edx
push ecx
call fcn.005e5470
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
mov ebx, eax
mov eax, dword [esp + 0x10]
add eax, 8
add esi, 8
mov edi, edx
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jbe 0x43fb73
lea eax, [esi + 4]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
ja 0x43fc3d
mov ecx, dword [esi]
push 0x9e3779b1
push 0x85ebca87
push 0
push ecx
call fcn.005e5470
xor eax, ebx
xor edx, edi
mov ecx, eax
shld ecx, edx, 0x17
push 0xc2b2ae3d
shld edx, eax, 0x17
push 0x27d4eb4f
push edx
push ecx
call fcn.005e5470
mov esi, dword [esp + 0x10]
add eax, 0x9e3779f9
adc edx, 0x165667b1
mov ebx, eax
mov edi, edx
cmp esi, dword [esp + 0xc]
jae 0x43fc82
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.005e5470
xor eax, ebx
xor edx, edi
mov ecx, eax
shld ecx, edx, 0xb
push 0x9e3779b1
shld edx, eax, 0xb
push 0x85ebca87
push edx
push ecx
call fcn.005e5470
inc esi
mov ebx, eax
mov edi, edx
cmp esi, dword [esp + 0xc]
jb 0x43fc43
push 0xc2b2ae3d
xor eax, eax
mov edx, edi
push 0x27d4eb4f
shr edx, 1
xor eax, edi
xor edx, ebx
push eax
push edx
call fcn.005e5470
mov ecx, eax
mov esi, edx
shrd ecx, esi, 0x1d
push 0x165667b1
shr esi, 0x1d
push 0x9e3779f9
xor esi, edx
xor ecx, eax
push esi
push ecx
call fcn.005e5470
mov ecx, edx
mov esi, eax
mov eax, ecx
pop edi
xor eax, esi
xor edx, edx
pop esi
xor edx, ecx
pop ebx
mov esp, ebp
pop ebp
ret