Function at 0x598773
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x6807dc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 2
pop edx
mov dword [ebp - 0x230], esi
and dword [esi + 0xc0], 0
mov dword [ebp - 0x21c], edx
movzx ebx, byte [esi + edx + 0x2c9c]
xor edi, edi
mov eax, ebx
mov dword [ebp - 0x208], edi
shr eax, 1
and ebx, 1
dec eax
mov dword [ebp - 0x214], edx
or ebx, 2
mov dword [ebp - 0x22c], eax
mov ecx, eax
shl ebx, cl
lea ecx, [ebx + 0x8e7]
add ebx, edx
lea ecx, [esi + ecx*4]
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x218], ecx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], ecx
mov ecx, eax
shl dword [ebp - 0x210], cl
test eax, eax
je 0x598871
mov edi, dword [ebp - 0x230]
mov ebx, eax
mov eax, dword [ebp - 0x214]
mov esi, eax
mov edx, dword [ebp - 0x20c]
and esi, 1
shr eax, 1
add edx, edx
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x218]
movzx ecx, word [edx + eax]
mov eax, esi
neg eax
shr ecx, 4
shr eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [ebp - 0x208]
add eax, dword [edi + ecx*4 + 0x748]
mov dword [ebp - 0x208], eax
lea eax, [edx + esi]
mov dword [ebp - 0x20c], eax
sub ebx, 1
jne 0x598806
mov ebx, dword [ebp - 0x228]
mov esi, edi
mov edx, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x208]
jmp 0x598877
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x218]
movzx ecx, word [ecx + eax*2]
mov eax, ecx
xor ecx, 0x7f0
shr eax, 4
shr ecx, 4
mov eax, dword [esi + eax*4 + 0x748]
mov ecx, dword [esi + ecx*4 + 0x748]
add eax, edi
mov dword [ebp + ebx*4 - 0x204], eax
add ecx, edi
mov eax, dword [ebp - 0x210]
add eax, ebx
inc edx
mov dword [ebp - 0x21c], edx
mov dword [ebp + eax*4 - 0x204], ecx
cmp edx, 0x40
jb 0x5987a1
lea ebx, [ebp - 0x200]
mov dword [ebp - 0x22c], 4
sub ebx, esi
lea eax, [esi + 0x219c]
lea edx, [esi + 0x121c]
mov dword [ebp - 0x208], eax
lea edi, [esi + 0x1624]
mov dword [ebp - 0x228], edx
sub ebx, 0x161c
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x20c], ebx
mov eax, dword [esi + 0xc8]
inc eax
shr eax, 1
mov dword [ebp - 0x224], eax
je 0x598a6f
mov dword [ebp - 0x214], edx
mov edx, dword [ebp - 0x208]
push 0x20
pop ebx
mov dword [ebp - 0x218], ebx
lea ecx, [edx + 0x40]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], ecx
jmp 0x59894a
mov edx, dword [ebp - 0x208]
mov edi, ebx
mov ecx, ebx
and ecx, 1
shr edi, 1
neg ecx
shr ecx, 4
and ecx, 0x7f
movzx eax, word [edx + edi*2]
shr eax, 4
xor eax, ecx
mov ecx, edi
and ecx, 1
shr edi, 1
neg ecx
shr ecx, 4
mov ebx, dword [esi + eax*4 + 0x748]
and ecx, 0x7f
movzx eax, word [edx + edi*2]
shr eax, 4
xor eax, ecx
mov ecx, edi
and ecx, 1
shr edi, 1
neg ecx
shr ecx, 4
add ebx, dword [esi + eax*4 + 0x748]
and ecx, 0x7f
movzx eax, word [edx + edi*2]
shr eax, 4
xor eax, ecx
add ebx, dword [esi + eax*4 + 0x748]
mov esi, edi
shr edi, 1
and esi, 1
mov eax, edi
neg esi
shr eax, 1
shr esi, 4
and esi, 0x7f
movzx edx, word [edx + eax*2]
mov eax, edi
and eax, 1
shr edx, 4
neg eax
shr eax, 4
and eax, 0x7f
xor edx, eax
mov eax, dword [ebp - 0x208]
movzx ecx, word [eax + edi*2]
mov edi, dword [ebp - 0x21c]
shr ecx, 4
xor ecx, esi
mov esi, dword [ebp - 0x230]
mov eax, dword [esi + edx*4 + 0x748]
add eax, dword [esi + ecx*4 + 0x748]
movzx ecx, word [edi]
add ebx, eax
mov edx, dword [ebp - 0x214]
mov eax, ecx
shr eax, 4
xor ecx, 0x7f0
shr ecx, 4
add edi, 2
mov dword [ebp - 0x21c], edi
mov eax, dword [esi + eax*4 + 0x748]
add eax, ebx
mov dword [edx], eax
mov eax, dword [esi + ecx*4 + 0x748]
add eax, ebx
mov ebx, dword [ebp - 0x218]
mov dword [edx + 4], eax
inc ebx
add edx, 8
mov dword [ebp - 0x218], ebx
sub dword [ebp - 0x220], 1
mov dword [ebp - 0x214], edx
jne 0x598944
mov edx, dword [ebp - 0x228]
mov ebx, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x224]
mov edi, dword [ebp - 0x210]
push 7
pop ecx
mov dword [ebp - 0x224], 0x20
cmp eax, ecx
jbe 0x598a9b
mov ebx, dword [ebp - 0x224]
add dword [edx + ecx*8], ebx
add dword [edx + ecx*8 + 4], ebx
add ebx, 0x10
inc ecx
cmp ecx, eax
jb 0x598a86
mov ebx, dword [ebp - 0x20c]
mov eax, dword [edx]
mov dword [edi - 8], eax
mov eax, dword [edx + 4]
mov dword [edi - 4], eax
mov eax, dword [edx + 8]
mov dword [edi], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 4], eax
lea eax, [edi + 8]
push 4
pop ecx
mov dword [ebp - 0x220], ecx
mov edi, eax
mov dword [ebp - 0x224], eax
movzx eax, byte [esi + ecx + 0x2c9c]
mov ecx, dword [edx + eax*4]
mov eax, dword [ebx + edi - 4]
add eax, ecx
mov dword [edi], eax
mov eax, dword [ebx + edi]
lea edi, [edi + 8]
add eax, ecx
mov ecx, dword [ebp - 0x220]
mov dword [edi - 4], eax
add ecx, 2
mov eax, 0x80
mov dword [ebp - 0x220], ecx
cmp ecx, eax
jb 0x598ac5
mov edi, dword [ebp - 0x210]
mov ecx, 0x200
add dword [ebp - 0x208], eax
add edx, 0x100
add edi, ecx
mov dword [ebp - 0x228], edx
sub ebx, ecx
mov dword [ebp - 0x210], edi
sub dword [ebp - 0x22c], 1
mov dword [ebp - 0x20c], ebx
jne 0x598909
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055cf54
leave
ret