Function at 0x433bf0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x38]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
push edi
lea ebp, [esi + eax]
mov dword [esp + 0x3c], ebp
cmp eax, 0x20
jb 0x433e23
mov edi, dword [esp + 0x4c]
lea eax, [ebp - 0x20]
mov ebx, dword [esp + 0x50]
mov ebp, edi
mov dword [esp + 0x28], eax
add ebp, 0xadc0b5d6
mov eax, ebx
adc eax, 0x60ea27ee
mov dword [esp + 0x20], eax
mov eax, edi
add eax, 0x27d4eb4f
mov dword [esp + 0x1c], eax
mov eax, ebx
adc eax, 0xc2b2ae3d
mov dword [esp + 0x18], eax
mov eax, edi
add eax, 0x7a143579
mov dword [esp + 0x10], eax
mov eax, ebx
adc eax, 0x61c8864e
mov dword [esp + 0x14], eax
lea ecx, [ecx]
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.0051dec0
mov ecx, eax
add ecx, ebp
mov eax, ecx
adc edx, dword [esp + 0x20]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0xc]
mov ebp, eax
mov dword [esp + 0x2c], edx
push dword [esi + 8]
call fcn.0051dec0
mov ecx, eax
add ecx, dword [esp + 0x1c]
mov eax, ecx
adc edx, dword [esp + 0x18]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0x14]
mov dword [esp + 0x28], eax
push dword [esi + 0x10]
mov dword [esp + 0x28], edx
call fcn.0051dec0
mov ecx, eax
add ecx, edi
mov eax, ecx
adc edx, ebx
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0x1c]
mov edi, eax
mov ebx, edx
push dword [esi + 0x18]
call fcn.0051dec0
mov ecx, eax
add ecx, dword [esp + 0x10]
mov eax, ecx
adc edx, dword [esp + 0x14]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
add esi, 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp esi, dword [esp + 0x28]
jbe 0x433c60
mov ecx, dword [esp + 0x20]
mov eax, ebp
push dword [esp + 0x14]
shld eax, ecx, 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], eax
mov eax, ecx
mov ecx, dword [esp + 0x1c]
shld eax, ebp, 1
mov dword [esp + 0x28], ebx
mov ebx, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov ebp, eax
shld ebp, ecx, 7
mov ecx, dword [esp + 0x14]
shld ebx, eax, 7
mov eax, dword [esp + 0x28]
mov edx, eax
mov dword [esp + 0x2c], edi
shld edi, eax, 0xc
mov eax, dword [esp + 0x2c]
shld edx, eax, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x14]
push ebp
push dword [esp + 0x2c]
shld ecx, eax, 0x12
push dword [esp + 0x34]
shld eax, ebp, 0x12
push dword [esp + 0x28]
add ecx, edi
push dword [esp + 0x30]
adc eax, edx
add ecx, dword [esp + 0x48]
push dword [esp + 0x38]
adc eax, ebx
add ecx, dword [esp + 0x50]
push dword [esp + 0x48]
adc eax, dword [esp + 0x58]
push eax
push ecx
call fcn.0042fc80
push edx
push eax
call fcn.0042fc80
push edx
push eax
call fcn.0042fc80
push edx
push eax
call fcn.0042fc80
mov ebp, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [esp + 0x48]
mov edi, edx
jmp 0x433e37
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
add ebx, 0x165667c5
adc edi, 0x27d4eb2f
add ebx, eax
lea eax, [esi + 8]
adc edi, 0
cmp eax, ebp
ja 0x433ead
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.0051dec0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.0051dec0
mov ecx, eax
xor edx, edi
xor ecx, ebx
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0x1b
shld edx, ecx, 0x1b
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
mov ebx, eax
mov edi, edx
add ebx, 0xc2b2ae63
adc edi, 0x85ebca77
add esi, 8
lea eax, [esi + 8]
cmp eax, ebp
jbe 0x433e43
lea eax, [esi + 4]
mov dword [esp + 0x3c], eax
cmp eax, ebp
ja 0x433eff
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, ebx
xor esi, edi
mov ecx, eax
shld ecx, esi, 0x17
shld esi, eax, 0x17
push esi
push ecx
call fcn.0051dec0
mov esi, dword [esp + 0x3c]
mov ebx, eax
add ebx, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
cmp esi, ebp
jae 0x433f42
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.0051dec0
mov ecx, eax
xor edx, edi
xor ecx, ebx
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0xb
shld edx, ecx, 0xb
push 0x85ebca87
push edx
push eax
call fcn.0051dec0
inc esi
mov ebx, eax
mov edi, edx
cmp esi, ebp
jb 0x433f03
push 0xc2b2ae3d
xor eax, eax
mov ecx, edi
push 0x27d4eb4f
shr ecx, 1
xor eax, edi
xor ecx, ebx
push eax
push ecx
call fcn.0051dec0
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.0051dec0
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x10