Function at 0x6d77a0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ecx
mov edx, esp
test byte [edx + 7], 0x40
seta cl
mov byte [eax + 0x304], cl
test byte [edx + 7], 0x80
seta cl
mov byte [eax + 0x324], cl
test byte [edx + 6], 0x40
seta cl
mov byte [eax + 0x305], cl
test byte [edx + 6], 0x80
seta cl
mov byte [eax + 0x325], cl
test byte [edx + 5], 0x40
seta cl
mov byte [eax + 0x306], cl
test byte [edx + 5], 0x80
seta cl
mov byte [eax + 0x326], cl
test byte [edx + 4], 0x40
seta cl
mov byte [eax + 0x307], cl
test byte [edx + 4], 0x80
seta cl
mov byte [eax + 0x327], cl
test byte [edx + 3], 0x40
seta cl
mov byte [eax + 0x308], cl
test byte [edx + 3], 0x80
seta cl
mov byte [eax + 0x328], cl
test byte [edx + 2], 0x40
seta cl
mov byte [eax + 0x309], cl
test byte [edx + 2], 0x80
seta cl
mov byte [eax + 0x329], cl
test byte [edx + 1], 0x40
seta cl
mov byte [eax + 0x30a], cl
test byte [edx + 1], 0x80
seta cl
mov byte [eax + 0x32a], cl
test byte [edx], 0x40
seta cl
mov byte [eax + 0x30b], cl
test byte [edx], 0x80
seta cl
mov byte [eax + 0x32b], cl
test byte [edx + 7], 0x10
seta cl
mov byte [eax + 0x30c], cl
test byte [edx + 7], 0x20
seta cl
mov byte [eax + 0x32c], cl
test byte [edx + 6], 0x10
seta cl
mov byte [eax + 0x30d], cl
test byte [edx + 6], 0x20
seta cl
mov byte [eax + 0x32d], cl
test byte [edx + 5], 0x10
seta cl
mov byte [eax + 0x30e], cl
test byte [edx + 5], 0x20
seta cl
mov byte [eax + 0x32e], cl
test byte [edx + 4], 0x10
seta cl
mov byte [eax + 0x30f], cl
test byte [edx + 4], 0x20
seta cl
mov byte [eax + 0x32f], cl
test byte [edx + 3], 0x10
seta cl
mov byte [eax + 0x310], cl
test byte [edx + 3], 0x20
seta cl
mov byte [eax + 0x330], cl
test byte [edx + 2], 0x10
seta cl
mov byte [eax + 0x311], cl
test byte [edx + 2], 0x20
seta cl
mov byte [eax + 0x331], cl
test byte [edx + 1], 0x10
seta cl
mov byte [eax + 0x312], cl
test byte [edx + 1], 0x20
seta cl
mov byte [eax + 0x332], cl
test byte [edx], 0x10
seta cl
mov byte [eax + 0x313], cl
test byte [edx], 0x20
seta cl
mov byte [eax + 0x333], cl
test byte [edx + 7], 4
seta cl
mov byte [eax + 0x314], cl
test byte [edx + 7], 8
seta cl
mov byte [eax + 0x334], cl
test byte [edx + 6], 4
seta cl
mov byte [eax + 0x315], cl
test byte [edx + 6], 8
seta cl
mov byte [eax + 0x335], cl
test byte [edx + 5], 4
seta cl
mov byte [eax + 0x316], cl
test byte [edx + 5], 8
seta cl
mov byte [eax + 0x336], cl
test byte [edx + 4], 4
seta cl
mov byte [eax + 0x317], cl
test byte [edx + 4], 8
seta cl
mov byte [eax + 0x337], cl
test byte [edx + 3], 4
seta cl
mov byte [eax + 0x318], cl
test byte [edx + 3], 8
seta cl
mov byte [eax + 0x338], cl
test byte [edx + 2], 4
seta cl
mov byte [eax + 0x319], cl
test byte [edx + 2], 8
seta cl
mov byte [eax + 0x339], cl
test byte [edx + 1], 4
seta cl
mov byte [eax + 0x31a], cl
test byte [edx + 1], 8
seta cl
mov byte [eax + 0x33a], cl
test byte [edx], 4
seta cl
mov byte [eax + 0x31b], cl
test byte [edx], 8
seta cl
mov byte [eax + 0x33b], cl
movzx ecx, byte [edx + 7]
and cl, 1
mov byte [eax + 0x31c], cl
test byte [edx + 7], 2
seta cl
mov byte [eax + 0x33c], cl
movzx ecx, byte [edx + 6]
and cl, 1
mov byte [eax + 0x31d], cl
test byte [edx + 6], 2
seta cl
mov byte [eax + 0x33d], cl
movzx ecx, byte [edx + 5]
and cl, 1
mov byte [eax + 0x31e], cl
test byte [edx + 5], 2
seta cl
mov byte [eax + 0x33e], cl
movzx ecx, byte [edx + 4]
and cl, 1
mov byte [eax + 0x31f], cl
test byte [edx + 4], 2
seta cl
mov byte [eax + 0x33f], cl
movzx ecx, byte [edx + 3]
and cl, 1
mov byte [eax + 0x320], cl
test byte [edx + 3], 2
seta cl
mov byte [eax + 0x340], cl
movzx ecx, byte [edx + 2]
and cl, 1
mov byte [eax + 0x321], cl
test byte [edx + 2], 2
seta cl
mov byte [eax + 0x341], cl
movzx ecx, byte [edx + 1]
and cl, 1
mov byte [eax + 0x322], cl
test byte [edx + 1], 2
seta cl
mov byte [eax + 0x342], cl
movzx ecx, byte [edx]
and cl, 1
mov byte [eax + 0x323], cl
test byte [edx], 2
seta dl
mov byte [eax + 0x343], dl
mov dl, 1
movzx ecx, dl
add ecx, ecx
lea ecx, [ecx + ecx*2]
movzx ebx, byte [eax + ecx*8 - 0x2c]
xor bl, byte [eax + 0x343]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 0x27]
xor bl, byte [eax + 0x328]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x2b]
xor bl, byte [eax + 0x324]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x2a]
xor bl, byte [eax + 0x325]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x29]
xor bl, byte [eax + 0x326]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x28]
xor bl, byte [eax + 0x327]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x7171c4]
xor bl, byte [eax + 0x30c]
mov byte [eax + 0x34c], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x7173c4]
xor bl, byte [eax + 0x314]
mov byte [eax + 0x354], bl
movzx ebx, byte [ebp + 0x7175c4]
xor bl, byte [eax + 0x31a]
mov byte [eax + 0x35a], bl
movzx ebx, byte [ebp + 0x7177c4]
xor bl, byte [eax + 0x322]
mov byte [eax + 0x362], bl
movzx ebx, byte [eax + ecx*8 - 0x26]
xor bl, byte [eax + 0x327]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 0x21]
xor bl, byte [eax + 0x32c]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x25]
xor bl, byte [eax + 0x328]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x24]
xor bl, byte [eax + 0x329]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x23]
xor bl, byte [eax + 0x32a]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x22]
xor bl, byte [eax + 0x32b]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x717204]
xor bl, byte [eax + 0x310]
mov byte [eax + 0x350], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x717404]
xor bl, byte [eax + 0x31f]
mov byte [eax + 0x35f], bl
movzx ebx, byte [ebp + 0x717604]
xor bl, byte [eax + 0x305]
mov byte [eax + 0x345], bl
movzx ebx, byte [ebp + 0x717804]
xor bl, byte [eax + 0x315]
mov byte [eax + 0x355], bl
movzx ebx, byte [eax + ecx*8 - 0x20]
xor bl, byte [eax + 0x32b]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 0x1b]
xor bl, byte [eax + 0x330]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x1f]
xor bl, byte [eax + 0x32c]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x1e]
xor bl, byte [eax + 0x32d]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x1d]
xor bl, byte [eax + 0x32e]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x1c]
xor bl, byte [eax + 0x32f]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x717244]
xor bl, byte [eax + 0x31b]
mov byte [eax + 0x35b], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x717444]
xor bl, byte [eax + 0x313]
mov byte [eax + 0x353], bl
movzx ebx, byte [ebp + 0x717644]
xor bl, byte [eax + 0x321]
mov byte [eax + 0x361], bl
movzx ebx, byte [ebp + 0x717844]
xor bl, byte [eax + 0x309]
mov byte [eax + 0x349], bl
movzx ebx, byte [eax + ecx*8 - 0x1a]
xor bl, byte [eax + 0x32f]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 0x15]
xor bl, byte [eax + 0x334]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x19]
xor bl, byte [eax + 0x330]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x18]
xor bl, byte [eax + 0x331]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x17]
xor bl, byte [eax + 0x332]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x16]
xor bl, byte [eax + 0x333]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x717284]
xor bl, byte [eax + 0x31d]
mov byte [eax + 0x35d], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x717484]
xor bl, byte [eax + 0x317]
mov byte [eax + 0x357], bl
movzx ebx, byte [ebp + 0x717684]
xor bl, byte [eax + 0x30d]
mov byte [eax + 0x34d], bl
movzx ebx, byte [ebp + 0x717884]
xor bl, byte [eax + 0x304]
mov byte [eax + 0x344], bl
movzx ebx, byte [eax + ecx*8 - 0x14]
xor bl, byte [eax + 0x333]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 0xf]
xor bl, byte [eax + 0x338]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x13]
xor bl, byte [eax + 0x334]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x12]
xor bl, byte [eax + 0x335]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x11]
xor bl, byte [eax + 0x336]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0x10]
xor bl, byte [eax + 0x337]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x7172c4]
xor bl, byte [eax + 0x30b]
mov byte [eax + 0x34b], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x7174c4]
xor bl, byte [eax + 0x311]
mov byte [eax + 0x351], bl
movzx ebx, byte [ebp + 0x7176c4]
xor bl, byte [eax + 0x31c]
mov byte [eax + 0x35c], bl
movzx ebx, byte [ebp + 0x7178c4]
xor bl, byte [eax + 0x306]
mov byte [eax + 0x346], bl
movzx ebx, byte [eax + ecx*8 - 0xe]
xor bl, byte [eax + 0x337]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 9]
xor bl, byte [eax + 0x33c]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 0xd]
xor bl, byte [eax + 0x338]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0xc]
xor bl, byte [eax + 0x339]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0xb]
xor bl, byte [eax + 0x33a]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 0xa]
xor bl, byte [eax + 0x33b]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x717304]
xor bl, byte [eax + 0x307]
mov byte [eax + 0x347], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x717504]
xor bl, byte [eax + 0x320]
mov byte [eax + 0x360], bl
movzx ebx, byte [ebp + 0x717704]
xor bl, byte [eax + 0x30e]
mov byte [eax + 0x34e], bl
movzx ebx, byte [ebp + 0x717904]
xor bl, byte [eax + 0x316]
mov byte [eax + 0x356], bl
movzx ebx, byte [eax + ecx*8 - 8]
xor bl, byte [eax + 0x33b]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 - 3]
xor bl, byte [eax + 0x340]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 7]
xor bl, byte [eax + 0x33c]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 6]
xor bl, byte [eax + 0x33d]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 5]
xor bl, byte [eax + 0x33e]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 - 4]
xor bl, byte [eax + 0x33f]
movzx ebx, bl
or di, bx
movzx ebx, di
movzx ebx, byte [ebx + 0x717344]
xor bl, byte [eax + 0x323]
mov byte [eax + 0x363], bl
movzx ebp, di
movzx ebx, byte [ebp + 0x717544]
xor bl, byte [eax + 0x30f]
mov byte [eax + 0x34f], bl
movzx ebx, byte [ebp + 0x717744]
xor bl, byte [eax + 0x319]
mov byte [eax + 0x359], bl
movzx ebx, byte [ebp + 0x717944]
xor bl, byte [eax + 0x30a]
mov byte [eax + 0x34a], bl
movzx ebx, byte [eax + ecx*8 - 2]
xor bl, byte [eax + 0x33f]
movzx edi, bl
shl edi, 5
movzx ebx, byte [eax + ecx*8 + 3]
xor bl, byte [eax + 0x324]
movzx ebx, bl
shl ebx, 4
or di, bx
movzx ebx, byte [eax + ecx*8 - 1]
xor bl, byte [eax + 0x340]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8]
xor bl, byte [eax + 0x341]
movzx ebx, bl
add ebx, ebx
add ebx, ebx
or di, bx
movzx ebx, byte [eax + ecx*8 + 1]
xor bl, byte [eax + 0x342]
movzx ebx, bl
add ebx, ebx
or di, bx
movzx ecx, byte [eax + ecx*8 + 2]
xor cl, byte [eax + 0x343]
movzx ecx, cl
or di, cx
movzx ecx, di
movzx ecx, byte [ecx + 0x717384]
xor cl, byte [eax + 0x308]
mov byte [eax + 0x348], cl
movzx ecx, di
movzx ebx, byte [ecx + 0x717584]
xor bl, byte [eax + 0x31e]
mov byte [eax + 0x35e], bl
movzx ebx, byte [ecx + 0x717784]
xor bl, byte [eax + 0x312]
mov byte [eax + 0x352], bl
movzx ecx, byte [ecx + 0x717984]
xor cl, byte [eax + 0x318]
mov byte [eax + 0x358], cl
push esi
lea esi, [eax + 0x324]
lea edi, [eax + 0x304]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop esi
push esi
lea esi, [eax + 0x344]
lea edi, [eax + 0x324]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop esi
inc edx
cmp dl, 0x11
jne 0x6d7aec
movzx edx, byte [eax + 0x30b]
shl edx, 7
movzx ecx, byte [eax + 0x32b]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x313]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x333]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x31b]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x33b]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x323]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x343]
mov byte [esi], dl
movzx edx, byte [eax + 0x30a]
shl edx, 7
movzx ecx, byte [eax + 0x32a]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x312]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x332]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x31a]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x33a]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x322]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x342]
mov byte [esi + 1], dl
movzx edx, byte [eax + 0x309]
shl edx, 7
movzx ecx, byte [eax + 0x329]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x311]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x331]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x319]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x339]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x321]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x341]
mov byte [esi + 2], dl
movzx edx, byte [eax + 0x308]
shl edx, 7
movzx ecx, byte [eax + 0x328]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x310]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x330]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x318]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x338]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x320]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x340]
mov byte [esi + 3], dl
movzx edx, byte [eax + 0x307]
shl edx, 7
movzx ecx, byte [eax + 0x327]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x30f]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x32f]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x317]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x337]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x31f]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x33f]
mov byte [esi + 4], dl
movzx edx, byte [eax + 0x306]
shl edx, 7
movzx ecx, byte [eax + 0x326]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x30e]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x32e]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x316]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x336]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x31e]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x33e]
mov byte [esi + 5], dl
movzx edx, byte [eax + 0x305]
shl edx, 7
movzx ecx, byte [eax + 0x325]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x30d]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x32d]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x315]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x335]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x31d]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x33d]
mov byte [esi + 6], dl
movzx edx, byte [eax + 0x304]
shl edx, 7
movzx ecx, byte [eax + 0x324]
shl ecx, 6
or dl, cl
movzx ecx, byte [eax + 0x30c]
shl ecx, 5
or dl, cl
movzx ecx, byte [eax + 0x32c]
shl ecx, 4
or dl, cl
movzx ecx, byte [eax + 0x314]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x334]
add ecx, ecx
add ecx, ecx
or dl, cl
movzx ecx, byte [eax + 0x31c]
add ecx, ecx
or dl, cl
or dl, byte [eax + 0x33c]
mov byte [esi + 7], dl
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret