Function at 0x4562d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x174
mov eax, dword [0x691fb0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
movsd xmm0, qword [0x66a708]
movsd qword [ebp - 0x14c], xmm0
movsd xmm0, qword [0x66a708]
movsd qword [ebp - 0x144], xmm0
movsd xmm0, qword [0x66a708]
movsd qword [ebp - 0x144], xmm0
jmp 0x456348
movsd xmm0, qword [ebp - 0x144]
addsd xmm0, qword [0x66ac58]
movsd qword [ebp - 0x144], xmm0
movsd xmm0, qword [0x66bf18]
comisd xmm0, xmmword [ebp - 0x144]
jbe 0x4563f9
movsd xmm0, qword [0x66ba10]
mulsd xmm0, qword [ebp - 0x144]
mulsd xmm0, qword [ebp - 0x144]
movsd xmm1, qword [ebp - 0x144]
mulsd xmm1, qword [ebp - 0x144]
subsd xmm0, xmm1
movsd xmm1, qword [0x66ad50]
mulsd xmm1, qword [ebp - 0x144]
mulsd xmm1, qword [ebp - 0x144]
addsd xmm1, qword [0x66af28]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x14c]
movsd qword [ebp - 0x14c], xmm0
movsd xmm0, qword [ebp - 0x14c]
comisd xmm0, xmmword [0x66b750]
jbe 0x4563f4
movsd xmm0, qword [0x66aa28]
mulsd xmm0, qword [ebp - 0x144]
movsd xmm1, qword [ebp - 0x14c]
subsd xmm1, xmm0
movsd qword [ebp - 0x14c], xmm1
jmp 0x456330
movsd xmm0, qword [0x66a708]
comisd xmm0, xmmword [ebp - 0x14c]
jbe 0x456443
pop esp
sub dword [edx + 0x5d], eax
jne 0x456461
inc ecx
popal
cmp byte [ebp + 0x52], dh
xor ch, byte [esi]
pop ebp
cmp cl, byte [esi + 0x71]
das
sub eax, 0x212d592e
dec ebp
xchg eax, edx
mov dl, bl
adc esi, 0xd08ed686
test edi, edx
mov dl, dl
mov ebx, ebx
mov esp, ss
jg 0x456412
test eax, edx
invalid
mov dword [ebp - 0x170], 0x456424
mov dword [ebp - 0x16c], 0x45640b
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x174], ecx
mov byte [ebp - 0x131], 0x1d
mov dword [ebp - 0x12c], 0
jmp 0x456491
invalid
mov edx, dword [ebp - 0x12c]
add edx, 1
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0x100
jae 0x4564b2
mov eax, dword [ebp - 0x12c]
mov cl, byte [ebp - 0x12c]
mov byte [ebp + eax - 0x104], cl
jmp 0x456482
mov dword [ebp - 0x13c], 0
mov byte [ebp - 0x111], 0
mov dword [ebp - 0x12c], 0xff
jmp 0x4564de
mov edx, dword [ebp - 0x12c]
sub edx, 1
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
jbe 0x45674e
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x150], 1
mov eax, dword [ebp - 0x150]
cmp eax, dword [ebp - 0x12c]
jae 0x45651f
mov ecx, dword [ebp - 0x150]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x150], edx
jmp 0x4564ff
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 3
ja case.default.0x45653e
mov ecx, dword [ebp - 0x168]
jmp dword [ecx*4 + 0x457c60]
movzx edx, byte [ebp - 0x111]
movzx ebx, byte [ebp + edx - 0x104]
movsd xmm0, qword [ebp - 0x14c]
call fcn.006205c1
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x111], bl
jmp 0x456627
movzx eax, byte [ebp - 0x111]
movzx ebx, byte [ebp + eax - 0x104]
movsd xmm0, qword [ebp - 0x14c]
call fcn.006205c1
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x111], bl
jmp 0x456627
movzx ecx, byte [ebp - 0x111]
movzx ebx, byte [ebp + ecx - 0x104]
movsd xmm0, qword [ebp - 0x14c]
call fcn.006205c1
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x111], bl
jmp 0x456627
movzx edx, byte [ebp - 0x111]
movzx ebx, byte [ebp + edx - 0x104]
movsd xmm0, qword [ebp - 0x14c]
call fcn.006205c1
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x111], bl
jmp 0x456627
movzx eax, byte [ebp - 0x111]
movzx ecx, byte [ebp + eax - 0x104]
mov edx, dword [ebp - 0x174]
add edx, dword [ebp - 0x13c]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x111], cl
mov ecx, dword [ebp - 0x13c]
add ecx, 1
mov dword [ebp - 0x13c], ecx
movzx edx, byte [ebp - 0x131]
cmp dword [ebp - 0x13c], edx
jb 0x456665
mov dword [ebp - 0x13c], 0
movzx eax, byte [ebp - 0x131]
movzx ecx, byte [ebp - 0x111]
add ecx, eax
mov byte [ebp - 0x111], cl
movzx edx, byte [ebp - 0x111]
and edx, dword [ebp - 0x150]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x15c]
add eax, 1
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0xb
jbe 0x4566a4
mov eax, dword [ebp - 0x138]
xor edx, edx
div dword [ebp - 0x12c]
mov dword [ebp - 0x138], edx
mov ecx, dword [ebp - 0x138]
cmp ecx, dword [ebp - 0x12c]
ja 0x45651f
mov edx, dword [ebp - 0x12c]
cmp edx, dword [ebp - 0x138]
je 0x456749
mov eax, dword [ebp - 0x138]
movzx ecx, byte [ebp + eax - 0x104]
mov edx, dword [ebp - 0x12c]
movzx eax, byte [ebp + edx - 0x104]
xor eax, ecx
mov ecx, dword [ebp - 0x12c]
mov byte [ebp + ecx - 0x104], al
mov edx, dword [ebp - 0x12c]
movzx eax, byte [ebp + edx - 0x104]
mov ecx, dword [ebp - 0x138]
movzx edx, byte [ebp + ecx - 0x104]
xor edx, eax
mov eax, dword [ebp - 0x138]
mov byte [ebp + eax - 0x104], dl
mov ecx, dword [ebp - 0x138]
movzx edx, byte [ebp + ecx - 0x104]
mov eax, dword [ebp - 0x12c]
movzx ecx, byte [ebp + eax - 0x104]
xor ecx, edx
mov edx, dword [ebp - 0x12c]
mov byte [ebp + edx - 0x104], cl
jmp 0x4564cf
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x105], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x106], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x109], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x107], cl
movzx edx, byte [ebp - 0x111]
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x108], al
mov dword [ebp - 0x164], 0x1a
cmp dword [ebp - 0x164], 2
jle 0x457c14
mov ecx, dword [ebp - 0x164]
and ecx, 1
jne 0x457c14
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x118], 1
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0x7f
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd0
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x120]
shl edx, 4
or edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov al, byte [ebp - 0x124]
mov byte [ebp - 0x10a], al
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + ecx - 0x104]
mov byte [ebp - 0x10b], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x106]
add edx, ecx
mov byte [ebp - 0x106], dl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp - 0x106]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp - 0x107]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
mov dl, byte [ebp - 0x10b]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x109]
add edx, ecx
mov byte [ebp - 0x109], dl
movzx eax, byte [ebp - 0x10a]
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x105]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
xor eax, edx
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x108]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
movzx ecx, byte [ebp - 0x109]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + edx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov dl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], dl
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10c], al
cmp dword [ebp - 0x110], 0
jle 0x4569c9
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x110]
mov dl, byte [ebp - 0x10c]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x110]
add eax, 1
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x118]
add ecx, 1
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0x7f
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd0
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x120]
shl edx, 4
or edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov al, byte [ebp - 0x124]
mov byte [ebp - 0x10a], al
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + ecx - 0x104]
mov byte [ebp - 0x10b], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x106]
add edx, ecx
mov byte [ebp - 0x106], dl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp - 0x106]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp - 0x107]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
mov dl, byte [ebp - 0x10b]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x109]
add edx, ecx
mov byte [ebp - 0x109], dl
movzx eax, byte [ebp - 0x10a]
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x105]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
xor eax, edx
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x108]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
movzx ecx, byte [ebp - 0x109]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + edx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov dl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], dl
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10c], al
cmp dword [ebp - 0x110], 0
jle 0x456bc0
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x110]
mov dl, byte [ebp - 0x10c]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x110]
add eax, 1
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x118]
add ecx, 1
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0x7f
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd0
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x120]
shl edx, 4
or edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov al, byte [ebp - 0x124]
mov byte [ebp - 0x10a], al
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + ecx - 0x104]
mov byte [ebp - 0x10b], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x106]
add edx, ecx
mov byte [ebp - 0x106], dl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp - 0x106]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp - 0x107]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
mov dl, byte [ebp - 0x10b]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x109]
add edx, ecx
mov byte [ebp - 0x109], dl
movzx eax, byte [ebp - 0x10a]
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x105]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
xor eax, edx
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x108]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
movzx ecx, byte [ebp - 0x109]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + edx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov dl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], dl
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10c], al
cmp dword [ebp - 0x110], 0
jle 0x456db7
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x110]
mov dl, byte [ebp - 0x10c]
mov byte [ecx - 1], dl
mov eax, dword [ebp - 0x118]
add eax, 2
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x160], ecx
jmp 0x456de6
mov edx, dword [ebp - 0x160]
add edx, 1
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x118]
jge 0x456fe5
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2]
sub ecx, 0x7f
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + edx*2 + 1]
sub ecx, 0xd0
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x120]
shl edx, 4
or edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov al, byte [ebp - 0x124]
mov byte [ebp - 0x10a], al
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + ecx - 0x104]
mov byte [ebp - 0x10b], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x106]
add edx, ecx
mov byte [ebp - 0x106], dl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp - 0x106]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp - 0x107]
mov al, byte [ebp + ecx - 0x104]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x105]
mov dl, byte [ebp - 0x10b]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp + eax - 0x104]
movzx edx, byte [ebp - 0x109]
add edx, ecx
mov byte [ebp - 0x109], dl
movzx eax, byte [ebp - 0x10a]
movzx ecx, byte [ebp - 0x106]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x105]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
xor eax, edx
movzx ecx, byte [ebp - 0x107]
movzx edx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x108]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
movzx ecx, byte [ebp - 0x109]
movzx ecx, byte [ebp + ecx - 0x104]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + edx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov dl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], dl
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10c], al
cmp dword [ebp - 0x110], 0
jle 0x456fe0
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0x110]
mov dl, byte [ebp - 0x10c]
mov byte [ecx - 1], dl
jmp 0x456dd7
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2]
sub edx, 0x7f
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd0
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x120]
shl eax, 4
or eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], eax
mov cl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], cl
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x10b], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x106]
add eax, edx
mov byte [ebp - 0x106], al
mov cl, byte [ebp - 0x105]
add cl, 1
mov byte [ebp - 0x105], cl
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp - 0x106]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x107]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
mov al, byte [ebp - 0x10b]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x10b]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x109]
add eax, edx
mov byte [ebp - 0x109], al
movzx ecx, byte [ebp - 0x10a]
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
xor ecx, eax
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
movzx edx, byte [ebp + eax - 0x104]
xor ecx, edx
mov byte [ebp - 0x107], cl
mov al, byte [ebp - 0x10a]
mov byte [ebp - 0x108], al
mov cl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], cl
cmp dword [ebp - 0x110], 0
jle 0x4571ea
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0x110]
mov al, byte [ebp - 0x10c]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2]
sub edx, 0x7f
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd0
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x120]
shl eax, 4
or eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], eax
mov cl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], cl
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x10b], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x106]
add eax, edx
mov byte [ebp - 0x106], al
mov cl, byte [ebp - 0x105]
add cl, 1
mov byte [ebp - 0x105], cl
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp - 0x106]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x107]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
mov al, byte [ebp - 0x10b]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x10b]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x109]
add eax, edx
mov byte [ebp - 0x109], al
movzx ecx, byte [ebp - 0x10a]
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
xor ecx, eax
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
movzx edx, byte [ebp + eax - 0x104]
xor ecx, edx
mov byte [ebp - 0x107], cl
mov al, byte [ebp - 0x10a]
mov byte [ebp - 0x108], al
mov cl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], cl
cmp dword [ebp - 0x110], 0
jle 0x4573e0
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0x110]
mov al, byte [ebp - 0x10c]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2]
sub edx, 0x7f
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd0
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x120]
shl eax, 4
or eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], eax
mov cl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], cl
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x10b], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x106]
add eax, edx
mov byte [ebp - 0x106], al
mov cl, byte [ebp - 0x105]
add cl, 1
mov byte [ebp - 0x105], cl
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp - 0x106]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x107]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
mov al, byte [ebp - 0x10b]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x10b]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x109]
add eax, edx
mov byte [ebp - 0x109], al
movzx ecx, byte [ebp - 0x10a]
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
xor ecx, eax
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
movzx edx, byte [ebp + eax - 0x104]
xor ecx, edx
mov byte [ebp - 0x107], cl
mov al, byte [ebp - 0x10a]
mov byte [ebp - 0x108], al
mov cl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], cl
cmp dword [ebp - 0x110], 0
jle 0x4575d6
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0x110]
mov al, byte [ebp - 0x10c]
mov byte [edx - 1], al
mov ecx, dword [ebp - 0x118]
add ecx, 3
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x158], edx
jmp 0x457605
mov eax, dword [ebp - 0x158]
add eax, 1
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x158]
cmp ecx, dword [ebp - 0x118]
jge 0x457803
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2]
sub edx, 0x7f
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx + eax*2 + 1]
sub edx, 0xd0
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x120]
shl eax, 4
or eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], eax
mov cl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], cl
movzx edx, byte [ebp - 0x108]
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x10b], al
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x106]
add eax, edx
mov byte [ebp - 0x106], al
mov cl, byte [ebp - 0x105]
add cl, 1
mov byte [ebp - 0x105], cl
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp - 0x106]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0x107]
mov cl, byte [ebp + edx - 0x104]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x105]
mov al, byte [ebp - 0x10b]
mov byte [ebp + edx - 0x104], al
movzx ecx, byte [ebp - 0x10b]
movzx edx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp - 0x109]
add eax, edx
mov byte [ebp - 0x109], al
movzx ecx, byte [ebp - 0x10a]
movzx edx, byte [ebp - 0x106]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
xor ecx, eax
movzx edx, byte [ebp - 0x107]
movzx eax, byte [ebp + edx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x104]
movzx edx, byte [ebp + eax - 0x104]
xor ecx, edx
mov byte [ebp - 0x107], cl
mov al, byte [ebp - 0x10a]
mov byte [ebp - 0x108], al
mov cl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], cl
cmp dword [ebp - 0x110], 0
jle 0x4577fe
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0x110]
mov al, byte [ebp - 0x10c]
mov byte [edx - 1], al
jmp 0x4575f6
mov ecx, dword [ebp - 0x118]
add ecx, 1
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x11c]
movzx eax, byte [edx + ecx*2]
sub eax, 0x7f
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x11c]
movzx eax, byte [edx + ecx*2 + 1]
sub eax, 0xd0
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x120]
shl ecx, 4
or ecx, dword [ebp - 0x128]
mov dword [ebp - 0x124], ecx
mov dl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], dl
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10b], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov dl, byte [ebp - 0x105]
add dl, 1
mov byte [ebp - 0x105], dl
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10b]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x10b]
movzx eax, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx edx, byte [ebp - 0x10a]
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp + eax - 0x104]
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor edx, ecx
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp + eax - 0x104]
movzx eax, byte [ebp - 0x108]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
movzx eax, byte [ebp - 0x109]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp + ecx - 0x104]
xor edx, eax
mov byte [ebp - 0x107], dl
mov cl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], cl
mov dl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], dl
cmp dword [ebp - 0x110], 0
jle 0x457a09
mov eax, dword [ebp - 0x130]
add eax, dword [ebp - 0x110]
mov cl, byte [ebp - 0x10c]
mov byte [eax - 1], cl
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x11c]
movzx eax, byte [edx + ecx*2]
sub eax, 0x7f
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x11c]
movzx eax, byte [edx + ecx*2 + 1]
sub eax, 0xd0
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x120]
shl ecx, 4
or ecx, dword [ebp - 0x128]
mov dword [ebp - 0x124], ecx
mov dl, byte [ebp - 0x124]
mov byte [ebp - 0x10a], dl
movzx eax, byte [ebp - 0x108]
mov cl, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10b], cl
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov dl, byte [ebp - 0x105]
add dl, 1
mov byte [ebp - 0x105], dl
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov dl, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], dl
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10b]
mov byte [ebp + eax - 0x104], cl
movzx edx, byte [ebp - 0x10b]
movzx eax, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx edx, byte [ebp - 0x10a]
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp + eax - 0x104]
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor edx, ecx
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp + eax - 0x104]
movzx eax, byte [ebp - 0x108]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
movzx eax, byte [ebp - 0x109]
movzx eax, byte [ebp + eax - 0x104]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx eax, byte [ebp + ecx - 0x104]
xor edx, eax
mov byte [ebp - 0x107], dl
mov cl, byte [ebp - 0x10a]
mov byte [ebp - 0x108], cl
mov dl, byte [ebp - 0x107]
mov byte [ebp - 0x10c], dl
cmp dword [ebp - 0x110], 0
jle 0x457c00
mov eax, dword [ebp - 0x130]
add eax, dword [ebp - 0x110]
mov cl, byte [ebp - 0x10c]
mov byte [eax - 1], cl
mov edx, 1
imul eax, edx, 0xc
mov ecx, dword [ebp - 0x130]
mov byte [ecx + eax], 0
jmp 0x457c49
mov dword [ebp - 0x154], 0
jmp 0x457c2f
mov edx, dword [ebp - 0x154]
add edx, 1
mov dword [ebp - 0x154], edx
cmp dword [ebp - 0x154], 0xd
jge 0x457c49
mov eax, dword [ebp - 0x130]
add eax, dword [ebp - 0x154]
mov byte [eax], 0
jmp 0x457c20
mov eax, dword [ebp - 0x130]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0060052c
mov esp, ebp
pop ebp
ret