Function at 0x103395cc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
lea eax, [ebx + ecx]
mov dword [ebp - 4], eax
cmp ecx, 0x20
jb 0x10339733
add eax, 0xffffffe0
mov dword [ebp - 0x20], eax
mov eax, esi
add eax, 0xadc0b5d6
mov dword [ebp - 0x14], eax
mov eax, edi
adc eax, 0x60ea27ee
mov dword [ebp - 0x10], eax
mov eax, esi
add eax, 0x27d4eb4f
mov dword [ebp - 0xc], eax
mov eax, edi
adc eax, 0xc2b2ae3d
mov dword [ebp - 8], eax
mov eax, esi
add eax, 0x7a143579
mov dword [ebp - 0x18], eax
mov eax, edi
adc eax, 0x61c8864e
mov dword [ebp - 0x1c], eax
push ebx
call fcn.10326cb8
push edx
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.1032a490
add ebx, 8
mov dword [ebp - 0x14], eax
push ebx
mov dword [ebp - 0x10], edx
call fcn.10326cb8
push edx
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.1032a490
add ebx, 8
mov dword [ebp - 0xc], eax
push ebx
mov dword [ebp - 8], edx
call fcn.10326cb8
push edx
push eax
push edi
push esi
call fcn.1032a490
add ebx, 8
mov esi, eax
push ebx
mov edi, edx
call fcn.10326cb8
add esp, 0x40
push edx
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call fcn.1032a490
add ebx, 8
mov dword [ebp - 0x18], eax
add esp, 0x10
mov ecx, edx
mov dword [ebp - 0x1c], ecx
cmp ebx, dword [ebp - 0x20]
jbe 0x10339632
push ecx
push eax
push edi
push esi
push dword [ebp - 8]
mov dword [ebp - 0x20], edi
push dword [ebp - 0xc]
mov dword [ebp - 0x1c], esi
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push 0x12
push ecx
push eax
call fcn.10339890
push 0xc
push dword [ebp - 0x20]
mov edi, eax
mov esi, edx
push dword [ebp - 0x1c]
call fcn.10339890
push 7
push dword [ebp - 8]
add edi, eax
push dword [ebp - 0xc]
adc esi, edx
call fcn.10339890
push 1
push dword [ebp - 0x10]
add edi, eax
push dword [ebp - 0x14]
adc esi, edx
call fcn.10339890
add esp, 0x30
add edi, eax
adc esi, edx
push esi
push edi
call fcn.10326cd8
add esp, 0x10
push edx
push eax
call fcn.10326cd8
add esp, 0x10
push edx
push eax
call fcn.10326cd8
add esp, 0x10
push edx
push eax
call fcn.10326cd8
mov ecx, dword [ebp + 0xc]
add esp, 0x10
mov esi, eax
mov edi, edx
jmp 0x1033973f
add esi, 0x165667c5
adc edi, 0x27d4eb2f
add esi, ecx
lea eax, [ebx + 8]
mov dword [ebp - 0x1c], esi
adc edi, 0
cmp eax, dword [ebp - 4]
ja 0x103397a2
push 0x1b
push ebx
call fcn.10326cb8
push edx
push eax
push 0
push 0
call fcn.1032a490
add esp, 0x14
xor edx, edi
xor eax, esi
push edx
push eax
call fcn.10339890
add esp, 0xc
push 0x9e3779b1
push 0x85ebca87
push edx
push eax
call fcn.10335d10
mov esi, eax
mov edi, edx
add esi, 0xc2b2ae63
adc edi, 0x85ebca77
add ebx, 8
lea eax, [ebx + 8]
cmp eax, dword [ebp - 4]
jbe 0x1033974f
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 4]
lea ecx, [ebx + 4]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
ja 0x10339802
push 0x17
push ebx
call fcn.1033f27c
pop ecx
mov ecx, eax
mov eax, 0x9e3779b1
mul ecx
mov esi, eax
mov eax, 0x85ebca87
mul ecx
xor eax, dword [ebp - 0x1c]
add esi, edx
xor esi, edi
push esi
push eax
call fcn.10339890
add esp, 0xc
push 0xc2b2ae3d
push 0x27d4eb4f
push edx
push eax
call fcn.10335d10
mov ebx, dword [ebp - 0x20]
mov esi, eax
mov eax, dword [ebp - 4]
add esi, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
cmp ebx, eax
jae 0x10339846
movzx eax, byte [ebx]
push 0xb
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.10335d10
xor edx, edi
xor eax, esi
push edx
push eax
call fcn.10339890
add esp, 0xc
push 0x9e3779b1
push 0x85ebca87
push edx
push eax
call fcn.10335d10
inc ebx
mov esi, eax
mov edi, edx
cmp ebx, dword [ebp - 4]
jb 0x10339806
push 0xc2b2ae3d
xor eax, eax
mov ecx, edi
push 0x27d4eb4f
shr ecx, 1
xor eax, edi
xor ecx, esi
push eax
push ecx
call fcn.10335d10
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.10335d10
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
leave
ret