Function at 0x50e930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push ebx
push esi
push edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x48], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
jmp 0x50e979
movsd xmm0, qword [ebp - 0x40]
addsd xmm0, qword [0x681b20]
movsd qword [ebp - 0x40], xmm0
movsd xmm0, qword [0x689728]
comisd xmm0, xmmword [ebp - 0x40]
jbe 0x50e9ff
movsd xmm0, qword [0x689670]
mulsd xmm0, qword [ebp - 0x40]
mulsd xmm0, qword [ebp - 0x40]
movsd xmm1, qword [ebp - 0x40]
mulsd xmm1, qword [ebp - 0x40]
subsd xmm0, xmm1
movsd xmm1, qword [0x6866f8]
mulsd xmm1, qword [ebp - 0x40]
mulsd xmm1, qword [ebp - 0x40]
addsd xmm1, qword [0x689470]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x48]
movsd qword [ebp - 0x48], xmm0
movsd xmm0, qword [ebp - 0x48]
comisd xmm0, xmmword [0x689498]
jbe 0x50e9fa
movsd xmm0, qword [0x6892d0]
mulsd xmm0, qword [ebp - 0x40]
movsd xmm1, qword [ebp - 0x48]
subsd xmm1, xmm0
movsd qword [ebp - 0x48], xmm1
jmp 0x50e967
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x48]
jbe 0x50ea42
push ebp
bound esp, qword [edi]
cmp byte [esi + 0x73], ch
inc ebx
and dword [ebx + 0x5c], ebp
push esp
push esp
je 0x50ea8d
xor eax, 0x4d366c3e
and esp, dword [esi + eax*2 + 0x20]
pop edi
pop ebx
inc edi
inc ebp
xor eax, 0xf22f3d20
loop 0x50ea25
cmp eax, 0xf9e2f22f
das
loop 0x50ea25
xlatb
neg al
neg bl
cmc
loopne 0x50ea28
aam 0xef
fdivr st(5), st(0)
fdivr st(3)
fcomi st(3)
loopne 0x50ea27
je 0x50ea4e
add byte [eax], al
mov dword [ebp - 0x60], 0x50ea29
mov dword [ebp - 0x64], 0x50ea09
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x64]
push eax
add byte [ebx + 0x4589a045], cl
in al, 0x8b
dec ebp
pushfd
mov dword [ebp - 0x170], ecx
mov byte [ebp - 0x29], 0x24
mov dword [ebp - 0x18], 0
jmp 0x50ea75
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jae 0x50ea8d
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp - 0x18]
mov byte [ebp + eax - 0x16c], cl
jmp 0x50ea6c
mov dword [ebp - 0x38], 0
mov byte [ebp - 9], 0
mov dword [ebp - 0x18], 0xff
jmp 0x50eaaa
mov edx, dword [ebp - 0x18]
sub edx, 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jbe 0x50ec6b
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x18]
jae 0x50ead6
mov ecx, dword [ebp - 0x4c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x4c], edx
jmp 0x50eac2
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 3
ja case.default.0x50eae9
mov ecx, dword [ebp - 0x68]
jmp dword [ecx*4 + 0x50f8c0]
movzx edx, byte [ebp - 9]
movzx ebx, byte [ebp + edx - 0x16c]
movsd xmm0, qword [ebp - 0x48]
call fcn.0064eab1
and eax, 0xff
add ebx, eax
mov byte [ebp - 9], bl
jmp 0x50eba2
movzx eax, byte [ebp - 9]
movzx ebx, byte [ebp + eax - 0x16c]
movsd xmm0, qword [ebp - 0x48]
call fcn.0064eab1
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 9], bl
jmp 0x50eba2
movzx ecx, byte [ebp - 9]
movzx ebx, byte [ebp + ecx - 0x16c]
movsd xmm0, qword [ebp - 0x48]
call fcn.0064eab1
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 9], bl
jmp 0x50eba2
movzx edx, byte [ebp - 9]
movzx ebx, byte [ebp + edx - 0x16c]
movsd xmm0, qword [ebp - 0x48]
call fcn.0064eab1
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 9], bl
jmp 0x50eba2
movzx eax, byte [ebp - 9]
movzx ecx, byte [ebp + eax - 0x16c]
mov edx, dword [ebp - 0x170]
add edx, dword [ebp - 0x38]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 9], cl
mov ecx, dword [ebp - 0x38]
add ecx, 1
mov dword [ebp - 0x38], ecx
movzx edx, byte [ebp - 0x29]
cmp dword [ebp - 0x38], edx
jb 0x50ebc8
mov dword [ebp - 0x38], 0
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp - 9]
add ecx, eax
mov byte [ebp - 9], cl
movzx edx, byte [ebp - 9]
and edx, dword [ebp - 0x4c]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xb
jbe 0x50ebec
mov eax, dword [ebp - 0x34]
xor edx, edx
div dword [ebp - 0x18]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x18]
ja 0x50ead6
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x34]
je 0x50ec66
mov eax, dword [ebp - 0x34]
movzx ecx, byte [ebp + eax - 0x16c]
mov edx, dword [ebp - 0x18]
movzx eax, byte [ebp + edx - 0x16c]
xor eax, ecx
mov ecx, dword [ebp - 0x18]
mov byte [ebp + ecx - 0x16c], al
mov edx, dword [ebp - 0x18]
movzx eax, byte [ebp + edx - 0x16c]
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ebp + ecx - 0x16c]
xor edx, eax
mov eax, dword [ebp - 0x34]
mov byte [ebp + eax - 0x16c], dl
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ebp + ecx - 0x16c]
mov eax, dword [ebp - 0x18]
movzx ecx, byte [ebp + eax - 0x16c]
xor ecx, edx
mov edx, dword [ebp - 0x18]
mov byte [ebp + edx - 0x16c], cl
jmp 0x50eaa1
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x16c]
mov byte [ebp - 1], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x16c]
mov byte [ebp - 2], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x16c]
mov byte [ebp - 5], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x16c]
mov byte [ebp - 3], cl
movzx edx, byte [ebp - 9]
mov al, byte [ebp + edx - 0x16c]
mov byte [ebp - 4], al
mov dword [ebp - 0x6c], 0x14
cmp dword [ebp - 0x6c], 2
jle 0x50f893
mov ecx, dword [ebp - 0x6c]
and ecx, 1
jne 0x50f893
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0xee
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd4
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x24]
shl edx, 4
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov al, byte [ebp - 0x20]
mov byte [ebp - 7], al
movzx ecx, byte [ebp - 4]
mov dl, byte [ebp + ecx - 0x16c]
mov byte [ebp - 6], dl
movzx eax, byte [ebp - 1]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 2]
add edx, ecx
mov byte [ebp - 2], dl
mov al, byte [ebp - 1]
add al, 1
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp - 4]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp - 2]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp - 3]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
mov dl, byte [ebp - 6]
mov byte [ebp + ecx - 0x16c], dl
movzx eax, byte [ebp - 6]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 5]
add edx, ecx
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 7]
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 1]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
xor eax, edx
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 4]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
movzx ecx, byte [ebp - 5]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
movzx ecx, byte [ebp + edx - 0x16c]
xor eax, ecx
mov byte [ebp - 3], al
mov dl, byte [ebp - 7]
mov byte [ebp - 4], dl
mov al, byte [ebp - 3]
mov byte [ebp - 8], al
cmp dword [ebp - 0x10], 0
jle 0x50ee44
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 8]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0xee
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd4
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x24]
shl edx, 4
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov al, byte [ebp - 0x20]
mov byte [ebp - 7], al
movzx ecx, byte [ebp - 4]
mov dl, byte [ebp + ecx - 0x16c]
mov byte [ebp - 6], dl
movzx eax, byte [ebp - 1]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 2]
add edx, ecx
mov byte [ebp - 2], dl
mov al, byte [ebp - 1]
add al, 1
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp - 4]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp - 2]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp - 3]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
mov dl, byte [ebp - 6]
mov byte [ebp + ecx - 0x16c], dl
movzx eax, byte [ebp - 6]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 5]
add edx, ecx
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 7]
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 1]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
xor eax, edx
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 4]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
movzx ecx, byte [ebp - 5]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
movzx ecx, byte [ebp + edx - 0x16c]
xor eax, ecx
mov byte [ebp - 3], al
mov dl, byte [ebp - 7]
mov byte [ebp - 4], dl
mov al, byte [ebp - 3]
mov byte [ebp - 8], al
cmp dword [ebp - 0x10], 0
jle 0x50efae
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 8]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0xee
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd4
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x24]
shl edx, 4
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov al, byte [ebp - 0x20]
mov byte [ebp - 7], al
movzx ecx, byte [ebp - 4]
mov dl, byte [ebp + ecx - 0x16c]
mov byte [ebp - 6], dl
movzx eax, byte [ebp - 1]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 2]
add edx, ecx
mov byte [ebp - 2], dl
mov al, byte [ebp - 1]
add al, 1
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp - 4]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp - 2]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp - 3]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
mov dl, byte [ebp - 6]
mov byte [ebp + ecx - 0x16c], dl
movzx eax, byte [ebp - 6]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 5]
add edx, ecx
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 7]
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 1]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
xor eax, edx
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 4]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
movzx ecx, byte [ebp - 5]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
movzx ecx, byte [ebp + edx - 0x16c]
xor eax, ecx
mov byte [ebp - 3], al
mov dl, byte [ebp - 7]
mov byte [ebp - 4], dl
mov al, byte [ebp - 3]
mov byte [ebp - 8], al
cmp dword [ebp - 0x10], 0
jle 0x50f118
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 8]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x58], ecx
jmp 0x50f135
mov edx, dword [ebp - 0x58]
add edx, 1
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x14]
jge 0x50f2a7
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0xee
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd4
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x24]
shl edx, 4
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov al, byte [ebp - 0x20]
mov byte [ebp - 7], al
movzx ecx, byte [ebp - 4]
mov dl, byte [ebp + ecx - 0x16c]
mov byte [ebp - 6], dl
movzx eax, byte [ebp - 1]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 2]
add edx, ecx
mov byte [ebp - 2], dl
mov al, byte [ebp - 1]
add al, 1
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp - 4]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp - 2]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp - 3]
mov al, byte [ebp + ecx - 0x16c]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 1]
mov dl, byte [ebp - 6]
mov byte [ebp + ecx - 0x16c], dl
movzx eax, byte [ebp - 6]
movzx ecx, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp - 5]
add edx, ecx
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 7]
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 1]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
xor eax, edx
movzx ecx, byte [ebp - 3]
movzx edx, byte [ebp + ecx - 0x16c]
movzx ecx, byte [ebp - 4]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
movzx ecx, byte [ebp - 5]
movzx ecx, byte [ebp + ecx - 0x16c]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x16c]
movzx ecx, byte [ebp + edx - 0x16c]
xor eax, ecx
mov byte [ebp - 3], al
mov dl, byte [ebp - 7]
mov byte [ebp - 4], dl
mov al, byte [ebp - 3]
mov byte [ebp - 8], al
cmp dword [ebp - 0x10], 0
jle 0x50f2a2
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 8]
mov byte [ecx - 1], dl
jmp 0x50f12c
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2]
sub edx, 0xee
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd4
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x24]
shl eax, 4
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov cl, byte [ebp - 0x20]
mov byte [ebp - 7], cl
movzx edx, byte [ebp - 4]
mov al, byte [ebp + edx - 0x16c]
mov byte [ebp - 6], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 2]
add eax, edx
mov byte [ebp - 2], al
mov cl, byte [ebp - 1]
add cl, 1
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp - 4]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp - 2]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
movzx eax, byte [ebp - 3]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 5]
add eax, edx
mov byte [ebp - 5], al
movzx ecx, byte [ebp - 7]
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 1]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
xor ecx, eax
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 4]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
movzx edx, byte [ebp - 5]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp + eax - 0x16c]
xor ecx, edx
mov byte [ebp - 3], cl
mov al, byte [ebp - 7]
mov byte [ebp - 4], al
mov cl, byte [ebp - 3]
mov byte [ebp - 8], cl
cmp dword [ebp - 0x10], 0
jle 0x50f419
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x10]
mov al, byte [ebp - 8]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2]
sub edx, 0xee
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd4
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x24]
shl eax, 4
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov cl, byte [ebp - 0x20]
mov byte [ebp - 7], cl
movzx edx, byte [ebp - 4]
mov al, byte [ebp + edx - 0x16c]
mov byte [ebp - 6], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 2]
add eax, edx
mov byte [ebp - 2], al
mov cl, byte [ebp - 1]
add cl, 1
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp - 4]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp - 2]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
movzx eax, byte [ebp - 3]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 5]
add eax, edx
mov byte [ebp - 5], al
movzx ecx, byte [ebp - 7]
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 1]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
xor ecx, eax
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 4]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
movzx edx, byte [ebp - 5]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp + eax - 0x16c]
xor ecx, edx
mov byte [ebp - 3], cl
mov al, byte [ebp - 7]
mov byte [ebp - 4], al
mov cl, byte [ebp - 3]
mov byte [ebp - 8], cl
cmp dword [ebp - 0x10], 0
jle 0x50f582
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x10]
mov al, byte [ebp - 8]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2]
sub edx, 0xee
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd4
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x24]
shl eax, 4
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov cl, byte [ebp - 0x20]
mov byte [ebp - 7], cl
movzx edx, byte [ebp - 4]
mov al, byte [ebp + edx - 0x16c]
mov byte [ebp - 6], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 2]
add eax, edx
mov byte [ebp - 2], al
mov cl, byte [ebp - 1]
add cl, 1
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp - 4]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp - 2]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
movzx eax, byte [ebp - 3]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 5]
add eax, edx
mov byte [ebp - 5], al
movzx ecx, byte [ebp - 7]
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 1]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
xor ecx, eax
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 4]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
movzx edx, byte [ebp - 5]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp + eax - 0x16c]
xor ecx, edx
mov byte [ebp - 3], cl
mov al, byte [ebp - 7]
mov byte [ebp - 4], al
mov cl, byte [ebp - 3]
mov byte [ebp - 8], cl
cmp dword [ebp - 0x10], 0
jle 0x50f6eb
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x10]
mov al, byte [ebp - 8]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x5c], edx
jmp 0x50f708
mov eax, dword [ebp - 0x5c]
add eax, 1
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebp - 0x14]
jge 0x50f879
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2]
sub edx, 0xee
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd4
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x24]
shl eax, 4
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov cl, byte [ebp - 0x20]
mov byte [ebp - 7], cl
movzx edx, byte [ebp - 4]
mov al, byte [ebp + edx - 0x16c]
mov byte [ebp - 6], al
movzx ecx, byte [ebp - 1]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 2]
add eax, edx
mov byte [ebp - 2], al
mov cl, byte [ebp - 1]
add cl, 1
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp - 4]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp - 2]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
movzx eax, byte [ebp - 3]
mov cl, byte [ebp + edx - 0x16c]
mov byte [ebp + eax - 0x16c], cl
movzx edx, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp + edx - 0x16c], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ebp + ecx - 0x16c]
movzx eax, byte [ebp - 5]
add eax, edx
mov byte [ebp - 5], al
movzx ecx, byte [ebp - 7]
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 1]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
xor ecx, eax
movzx edx, byte [ebp - 3]
movzx eax, byte [ebp + edx - 0x16c]
movzx edx, byte [ebp - 4]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
movzx edx, byte [ebp - 5]
movzx edx, byte [ebp + edx - 0x16c]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x16c]
movzx edx, byte [ebp + eax - 0x16c]
xor ecx, edx
mov byte [ebp - 3], cl
mov al, byte [ebp - 7]
mov byte [ebp - 4], al
mov cl, byte [ebp - 3]
mov byte [ebp - 8], cl
cmp dword [ebp - 0x10], 0
jle 0x50f874
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x10]
mov al, byte [ebp - 8]
mov byte [edx - 1], al
jmp 0x50f6ff
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, 1
imul eax, edx, 9
mov ecx, dword [ebp - 0x30]
mov byte [ecx + eax], 0
jmp 0x50f8b6
mov dword [ebp - 0x50], 0
jmp 0x50f8a5
mov edx, dword [ebp - 0x50]
add edx, 1
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], 0xa
jge 0x50f8b6
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x50]
mov byte [eax], 0
jmp 0x50f89c
mov eax, dword [ebp - 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret