Function at 0x672a10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x20
mov ecx, dword [esp + 0x24]
push ebx
push ebp
push esi
mov edx, dword [ecx + 4]
lea ebp, [ecx + 0x28]
add ebp, dword [ecx + 0x48]
lea esi, [ecx + 0x28]
mov eax, dword [ecx]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
push edi
test edx, edx
jne 0x672a59
cmp eax, 0x20
jae 0x672a59
mov ebx, dword [ecx + 0x18]
mov edi, dword [ecx + 0x1c]
add ebx, 0x165667c5
adc edi, 0x27d4eb2f
jmp 0x672b3b
mov ebp, dword [ecx + 0x10]
mov esi, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
mov edx, dword [ecx + 0x1c]
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [ebp + 0xc]
shld edi, ecx, 1
mov ecx, ebp
mov dword [esp + 0x18], edi
mov edi, dword [ecx + 0xc]
mov ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x10]
shld edi, ecx, 1
mov ecx, dword [esp + 0x34]
shld ebp, ebx, 7
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x34]
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x14]
shld ebx, edi, 7
push dword [ebp + 0x24]
mov edi, esi
shld edi, edx, 0xc
shld edx, esi, 0xc
mov esi, dword [ebp + 0x20]
push esi
shld ecx, eax, 0x12
shld eax, esi, 0x12
mov esi, ebp
push dword [esi + 0x1c]
push dword [esi + 0x18]
push dword [esi + 0x14]
mov esi, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push esi
mov esi, ebp
mov ebp, dword [esp + 0x38]
push dword [esi + 8]
mov esi, dword [esp + 0x38]
add esi, dword [esp + 0x30]
adc ebp, ebx
add esi, edi
adc ebp, edx
add esi, ecx
adc ebp, eax
push ebp
push esi
call fcn.006729a0
add esp, 0x10
push edx
push eax
call fcn.006729a0
add esp, 0x10
push edx
push eax
call fcn.006729a0
add esp, 0x10
push edx
push eax
call fcn.006729a0
mov esi, dword [esp + 0x30]
mov ebx, eax
mov ebp, dword [esp + 0x34]
mov edi, edx
mov eax, dword [esp + 0x38]
add esp, 0x10
mov edx, dword [esp + 0x2c]
add ebx, eax
lea eax, [esi + 8]
mov dword [esp + 0x10], eax
adc edi, edx
cmp eax, ebp
ja 0x672bc2
nop word [eax + eax]
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.0067c2e0
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.0067c2e0
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.0067c2e0
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x10]
add ebx, 0xc2b2ae63
adc edi, 0x85ebca77
add eax, 8
add esi, 8
mov dword [esp + 0x10], eax
cmp eax, ebp
jbe 0x672b50
lea eax, [esi + 4]
mov dword [esp + 0x2c], eax
cmp eax, ebp
ja 0x672c14
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.0067c2e0
mov esi, dword [esp + 0x2c]
mov ebx, eax
add ebx, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
cmp esi, ebp
jae 0x672c5f
nop dword [eax + eax]
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.0067c2e0
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.0067c2e0
inc esi
mov ebx, eax
mov edi, edx
cmp esi, ebp
jb 0x672c20
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.0067c2e0
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.0067c2e0
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret