Function at 0x539700
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov edx, ecx
push ebx
push esi
push edi
mov eax, dword [edx + 0x48]
lea esi, [edx + 0x28]
mov ecx, dword [edx]
add eax, 0x28
add eax, edx
mov dword [ebp - 4], edx
cmp dword [edx + 4], 0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 8], eax
ja 0x539746
cmp ecx, 0x20
jae 0x539746
mov ebx, dword [edx + 0x18]
mov edi, dword [edx + 0x1c]
add ebx, 0x165667c5
adc edi, 0x27d4eb2f
jmp 0x539816
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov esi, dword [edx + 0x18]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0x1c]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xc], eax
mov eax, dword [edx + 0xc]
shld ecx, eax, 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x10]
shld ecx, eax, 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov ecx, edi
shld ecx, ebx, 7
shld ebx, edi, 7
mov edi, esi
mov dword [ebp - 0x10], ecx
shld edi, edx, 0xc
shld edx, esi, 0xc
mov esi, dword [ebp - 4]
mov dword [ebp - 0xc], ebx
mov ebx, esi
mov ecx, dword [esi + 0x20]
push dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
push esi
shld ecx, eax, 0x12
shld eax, esi, 0x12
mov esi, ebx
add ecx, edi
adc eax, edx
add ecx, dword [ebp - 0x10]
push dword [esi + 0x1c]
adc eax, dword [ebp - 0xc]
push dword [esi + 0x18]
add ecx, dword [ebp - 0x14]
push dword [esi + 0x14]
adc eax, dword [ebp - 0x18]
push dword [esi + 0x10]
mov esi, dword [ebx + 0xc]
push esi
mov esi, dword [ebx + 8]
push esi
push eax
push ecx
call fcn.00538f60
add esp, 0x10
push edx
push eax
call fcn.00538f60
add esp, 0x10
push edx
push eax
call fcn.00538f60
add esp, 0x10
push edx
push eax
call fcn.00538f60
mov esi, dword [ebp - 0x1c]
mov ebx, eax
mov eax, dword [ebp - 8]
mov edi, edx
mov edx, dword [ebp - 4]
add esp, 0x10
mov ecx, dword [ebp - 0x20]
add ebx, ecx
adc edi, dword [edx + 4]
add edx, 0x30
mov dword [ebp - 4], edx
cmp edx, eax
ja 0x5398a3
nop word [eax + eax]
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.00567b30
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00567b30
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.00567b30
mov ecx, dword [ebp - 4]
mov ebx, eax
mov eax, dword [ebp - 8]
add ebx, 0xc2b2ae63
mov edi, edx
adc edi, 0x85ebca77
add ecx, 8
add esi, 8
mov dword [ebp - 4], ecx
cmp ecx, eax
jbe 0x539830
lea ecx, [esi + 4]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
ja 0x5398f6
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.00567b30
mov esi, dword [ebp - 0x20]
mov ebx, eax
mov eax, dword [ebp - 8]
add ebx, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
cmp esi, eax
jae 0x539940
nop word [eax + eax]
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.00567b30
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.00567b30
inc esi
mov ebx, eax
mov edi, edx
cmp esi, dword [ebp - 8]
jb 0x539900
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.00567b30
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.00567b30
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret