Function at 0x10005800
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4c]
lea ebp, [ecx - 0x7af]
push edi
lea edi, [edx + 0x124]
lea ebx, [ecx - 0x7d3]
lea eax, [esi - 0x3372]
mov dword [esp + 0x10], eax
lea ecx, [edi - 0x486]
mov eax, dword [esp + 0x48]
add eax, 0xffffcadc
mov dword [esp + 0x18], eax
lea eax, [esi - 0xa8]
mov dword [esp + 0x14], eax
add esi, 0xdf
mov eax, dword [esp + 0x40]
add eax, 0xfffffed6
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
lea eax, [edx + 0xbf]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
add edx, 0x91
mov eax, dword [esp + 0x2c]
add eax, 0xffffce50
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
add eax, 0x86
cmp eax, ecx
jl 0x1000599f
mov eax, dword [esi + 0x100]
mov ecx, 0x32ca
mov dword [esi + 0xa8], eax
imul eax, dword [esi + 0xc], 0x32ca
mov edi, dword [esi + 0x108]
add dword [esi + 0xd8], eax
mov eax, dword [edi + 0x1c4]
add eax, 0x119
cmp eax, ecx
jbe 0x100058f6
mov edx, dword [esi + 0x128]
or edx, 0x3239
nop dword [eax + eax]
mov dword [esi + 0x120], edx
inc ecx
mov eax, dword [edi + 0x1c4]
add eax, 0x119
cmp ecx, eax
jb 0x100058e0
mov eax, dword [esi + 0x1e8]
xor eax, 0x1dc4
cmp eax, 0x3233
jb 0x1000591f
mov eax, dword [esi + 0x1c4]
xor eax, dword [esi + 0xa0]
xor eax, 0x2dad
mov dword [esi + 0xa0], eax
lea eax, [ebx + 0x79b]
cmp dword [esp + 0x14], eax
jge 0x10005b20
mov eax, dword [esi + 0x2c]
push 0x10052558
push 1
push 0xf0
imul eax, dword [eax + 0x1e8], 0x454cfe70
push 8
push eax
push esi
push 0x2dad
push 0x310f
push 0x3239
push 0x3233
call fcn.10007570
add esp, 0x28
mov dword [esi + 0x100], eax
cmp dword [esi + 0x58], 0x31ce
jb 0x10005987
imul eax, dword [esi + 0x90], 0x3fff
mov dword [esi + 0x90], eax
mov ebx, dword [esp + 0x50]
pop edi
sub ebx, 0x1d7
pop esi
pop ebp
lea eax, [ebx + 0x23c]
pop ebx
add esp, 0xc
ret
sub ebx, dword [esp + 0x18]
add ebx, ebp
cmp dword [esi + 8], ebx
je 0x10005b20
mov eax, dword [esi + 0x108]
imul eax, ebp
cmp dword [esi + 0x1a4], eax
jbe 0x10005a24
mov ebx, dword [esp + 0x50]
xor edx, 0x32ca
cmp dword [esi + 0x58], edx
jae 0x100059fe
mov eax, dword [esi + 0x14c]
and eax, dword [esi + 0x7c]
imul eax, dword [esi + 0xe8]
mov ecx, dword [esp + 0x30]
mov dword [esi + 0xe8], eax
lea eax, [edi + edi]
sub ecx, eax
lea eax, [ebx + 0x23c]
xor dword [esi + 0x14], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esi + 0x160]
imul eax, edi
pop edi
and eax, ebp
imul eax, dword [esi + 0x134]
mov dword [esi + 0x134], eax
lea eax, [ebx + 0x23c]
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esi + 0x164]
mov edx, dword [esp + 0x10]
and eax, edi
mov ecx, dword [esi + 0xe8]
add eax, edx
cmp ecx, eax
jae 0x10005b20
mov eax, edx
mov ebx, ecx
or eax, 0x3233
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x50]
or eax, 0x2dad
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
nop word [eax + eax]
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x1b4]
sub eax, 0x1277
mov edx, dword [esi + 0x1e8]
and eax, 0x2ff7
push eax
mov eax, dword [esi + 0x34]
or eax, ecx
imul eax, ecx
push esi
push dword [esi + 0xc]
push dword [esp + 0x4c]
push eax
push dword [esp + 0x50]
imul eax, edx, 0x355c
and edx, dword [esp + 0x40]
sub eax, dword [esp + 0x28]
push eax
mov eax, dword [esi + 0x134]
and eax, dword [esp + 0x44]
push eax
mov eax, dword [esi + 0x10c]
sub eax, dword [esi + 0x14]
xor eax, ebp
push eax
mov eax, dword [esi + 0x120]
or eax, 0x2f82
xor eax, dword [esi + 0x128]
push eax
mov eax, dword [esi + 0x124]
and eax, dword [esi + 0x58]
and eax, 0x3372
push eax
mov eax, dword [esi + 0x140]
xor eax, 0x310f
push eax
mov eax, dword [esi + 0x1b8]
push edx
push dword [esp + 0x7c]
sub eax, 0x3233
push eax
call fcn.10001d40
mov eax, dword [esi + 0x164]
inc ebx
and eax, edi
add esp, 0x3c
add eax, dword [esp + 0x10]
cmp ebx, eax
jb 0x10005a70
mov ebx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
lea eax, [ebx + 0x23c]
pop ebx
add esp, 0xc
ret