Function at 0x45c0f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esp + 0x48]
lea ecx, [esi + eax]
push edi
mov dword [esp + 0x14], ecx
cmp eax, 0x20
jb 0x45c30d
xor eax, eax
mov edi, 0xadc0b5d6
mov ebx, 0x60ea27ee
mov ebp, 0x27d4eb4f
mov dword [esp + 0x2c], 0xc2b2ae3d
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], 0x7a143579
mov dword [esp + 0x1c], 0x61c8864e
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 0xc2b2ae3d
push 0x27d4eb4f
push ecx
push eax
call fcn.005f6f70
add eax, edi
adc edx, ebx
mov ecx, eax
shld ecx, edx, 0x1f
push 0x9e3779b1
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.005f6f70
mov ecx, dword [esi + 0xc]
push 0xc2b2ae3d
add esi, 8
push 0x27d4eb4f
mov edi, eax
mov eax, dword [esi]
push ecx
push eax
mov ebx, edx
call fcn.005f6f70
add eax, ebp
adc edx, dword [esp + 0x2c]
mov ecx, eax
shld ecx, edx, 0x1f
push 0x9e3779b1
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.005f6f70
mov ecx, dword [esi + 0xc]
push 0xc2b2ae3d
add esi, 8
push 0x27d4eb4f
mov ebp, eax
mov eax, dword [esi]
push ecx
push eax
mov dword [esp + 0x3c], edx
call fcn.005f6f70
add eax, dword [esp + 0x20]
push 0x9e3779b1
adc edx, dword [esp + 0x28]
mov ecx, eax
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.005f6f70
mov ecx, dword [esi + 0xc]
push 0xc2b2ae3d
add esi, 8
push 0x27d4eb4f
mov dword [esp + 0x28], eax
mov eax, dword [esi]
push ecx
push eax
mov dword [esp + 0x34], edx
call fcn.005f6f70
add eax, dword [esp + 0x18]
push 0x9e3779b1
adc edx, dword [esp + 0x20]
mov ecx, eax
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.005f6f70
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
add esi, 8
add eax, 0xffffffe0
cmp esi, eax
jbe 0x45c13e
mov eax, ebx
mov ecx, edi
shld ecx, eax, 1
shld eax, edi, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov ecx, ebp
shld ecx, eax, 7
shld eax, ebp, 7
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov edx, ecx
shld edx, eax, 0xc
shld eax, ecx, 0xc
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, edx
shld eax, ecx, 0x12
shld ecx, edx, 0x12
mov edx, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x1c]
adc ecx, dword [esp + 0x38]
add eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x3c]
push edx
push ebp
push ebx
push edi
push ecx
push eax
call fcn.0045c090
add esp, 0x10
push edx
push eax
call fcn.0045c090
add esp, 0x10
push edx
push eax
call fcn.0045c090
add esp, 0x10
push edx
push eax
call fcn.0045c090
mov ebx, eax
mov eax, dword [esp + 0x5c]
add esp, 0x10
mov edi, edx
jmp 0x45c317
mov ebx, 0x165667c5
mov edi, 0x27d4eb2f
add ebx, eax
lea ebp, [esi + 8]
adc edi, 0
cmp ebp, dword [esp + 0x14]
ja 0x45c394
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 0xc2b2ae3d
push 0x27d4eb4f
push ecx
push eax
call fcn.005f6f70
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.005f6f70
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.005f6f70
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
add ebp, 8
add esi, 8
mov ebx, eax
mov edi, edx
cmp ebp, dword [esp + 0x14]
jbe 0x45c325
lea ebp, [esi + 4]
cmp ebp, dword [esp + 0x14]
ja 0x45c3e1
mov eax, dword [esi]
push 0x9e3779b1
push 0x85ebca87
push 0
push eax
call fcn.005f6f70
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.005f6f70
add eax, 0x9e3779f9
adc edx, 0x165667b1
mov ebx, eax
mov edi, edx
mov esi, ebp
cmp esi, dword [esp + 0x14]
jae 0x45c426
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.005f6f70
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.005f6f70
inc esi
mov ebx, eax
mov edi, edx
cmp esi, dword [esp + 0x14]
jb 0x45c3e7
push 0xc2b2ae3d
xor edx, edx
mov ecx, edi
push 0x27d4eb4f
shr ecx, 1
xor edx, edi
xor ecx, ebx
push edx
push ecx
call fcn.005f6f70
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.005f6f70
mov ecx, edx
mov esi, eax
pop edi
mov eax, ecx
xor eax, esi
pop esi
xor edx, edx
pop ebp
xor edx, ecx
pop ebx
add esp, 0x38
ret