Function at 0x451b60
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov esi, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
xor esi, dword [eax + 4]
xor ecx, dword [eax + 0xc]
xor ebx, dword [eax + 8]
xor edx, dword [eax + 0x10]
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x18], esi
movzx esi, byte [eax + 0x4753e8]
mov eax, ecx
shr eax, 0x10
movzx eax, al
shl esi, 8
movzx eax, byte [eax + 0x4752e8]
xor esi, eax
mov eax, ecx
shr eax, 8
movzx eax, al
shl esi, 8
movzx eax, byte [eax + 0x4751e8]
xor esi, eax
movzx eax, cl
shl esi, 8
movzx eax, byte [eax + str.cw]
xor esi, eax
mov eax, edx
shr eax, 0x18
mov dword [ebp - 0x10], esi
movzx ecx, byte [eax + 0x4753e8]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x4752e8]
xor ecx, eax
mov eax, edx
shr eax, 8
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x4751e8]
xor ecx, eax
movzx eax, dl
shl ecx, 8
mov edx, dword [ebp - 0x18]
movzx eax, byte [eax + str.cw]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx esi, byte [eax + 0x4753e8]
mov eax, ebx
shr eax, 0x10
movzx eax, al
shl esi, 8
movzx eax, byte [eax + 0x4752e8]
xor esi, eax
mov eax, ebx
shr eax, 8
movzx eax, al
shl esi, 8
movzx eax, byte [eax + 0x4751e8]
xor esi, eax
movzx eax, bl
shl esi, 8
movzx eax, byte [eax + str.cw]
xor esi, eax
mov eax, edx
shr eax, 0x18
movzx ebx, byte [eax + 0x4753e8]
mov eax, edx
shl ebx, 8
shr eax, 0x10
movzx eax, al
movzx eax, byte [eax + 0x4752e8]
xor ebx, eax
mov edi, ecx
mov eax, edx
shl ebx, 8
shr eax, 8
movzx eax, al
shl ecx, 0x10
shr edi, 0x10
xor edi, ecx
mov ecx, dword [ebp - 0x10]
movzx eax, byte [eax + 0x4751e8]
xor ebx, eax
movzx eax, dl
shl ebx, 8
mov edx, esi
shr edx, 0x10
movzx eax, byte [eax + str.cw]
xor ebx, eax
mov eax, esi
shl eax, 0x10
xor edx, eax
mov dword [ebp - 8], ebx
mov eax, ecx
mov dword [ebp - 0xc], edx
shr eax, 8
mov edx, edi
mov dword [ebp - 4], eax
mov eax, ecx
shl eax, 8
xor dword [ebp - 4], eax
mov eax, dword [ebp - 4]
and eax, 0xff00ff
shl ecx, 8
xor eax, ecx
mov dword [ebp - 0x14], edx
xor esi, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
xor edx, esi
shl eax, 0x10
mov ecx, edi
shr ebx, 0x10
xor ebx, eax
shl edx, 8
mov eax, esi
shr ecx, 8
shr eax, 8
and ecx, 0xff00ff
xor edx, eax
mov dword [ebp - 0x18], ecx
mov eax, edi
and edx, 0xff00ff
xor eax, esi
mov esi, dword [ebp - 0xc]
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 4]
xor edx, ecx
mov ecx, eax
shl eax, 0x10
xor edx, ebx
shr ecx, 0x10
xor ecx, eax
mov eax, esi
xor edi, ecx
shl eax, 8
mov ecx, esi
shr ecx, 8
xor ecx, eax
mov eax, esi
shl eax, 8
and ecx, 0xff00ff
xor ecx, eax
mov esi, edi
mov eax, edx
shr esi, 0x10
xor eax, edi
xor ebx, ecx
xor dword [ebp - 8], eax
shl edi, 0x10
xor esi, edi
xor esi, edx
mov edi, edx
shl edx, 0x10
shr edi, 0x10
xor edi, edx
mov edx, ebx
mov ecx, edi
shr edx, 0x10
shr ecx, 8
mov eax, edi
shl eax, 8
xor ecx, eax
mov eax, edi
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov eax, esi
xor ecx, ebx
shl eax, 8
xor dword [ebp - 4], ecx
mov ecx, esi
shr ecx, 8
xor ecx, eax
shl esi, 8
mov eax, dword [ebp - 8]
and ecx, 0xff00ff
xor ecx, esi
shl ebx, 0x10
mov esi, dword [ebp + 8]
xor edx, ebx
xor ecx, dword [esi + 0x14]
xor dword [ebp - 0xc], ecx
xor eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x14]
mov ebx, ecx
mov dword [ebp - 8], eax
xor ecx, edx
xor ebx, edx
shl ecx, 8
shl ebx, 8
mov eax, edx
mov edx, dword [ebp - 0xc]
shr eax, 8
xor ebx, eax
mov dword [ebp - 0x14], 2
mov eax, dword [ebp - 4]
and ebx, 0xff00ff
xor eax, dword [esi + 0x20]
xor ebx, ecx
mov dword [ebp - 4], eax
mov ecx, edx
shr ecx, 0x10
mov eax, edx
movzx ecx, cl
shr eax, 0x18
xor ebx, dword [esi + 0x1c]
xor ebx, dword [ebp - 0x18]
movzx ecx, byte [ecx + str.cw]
xor ebx, edi
movzx eax, byte [eax + 0x4751e8]
shl eax, 8
xor eax, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl eax, 8
movzx ecx, byte [ecx + 0x4753e8]
xor eax, ecx
movzx ecx, dl
mov edx, dword [ebp - 8]
shl eax, 8
movzx ecx, byte [ecx + 0x4752e8]
xor eax, ecx
mov ecx, edx
shr ecx, 0x18
movzx edi, byte [ecx + 0x4751e8]
mov ecx, edx
shl edi, 8
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl edi, 8
movzx ecx, byte [ecx + 0x4753e8]
xor edi, ecx
movzx ecx, dl
shl edi, 8
mov edx, dword [ebp - 4]
movzx ecx, byte [ecx + 0x4752e8]
xor edi, ecx
mov ecx, ebx
shr ecx, 0x18
movzx esi, byte [ecx + 0x4751e8]
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
shl esi, 8
movzx ecx, byte [ecx + 0x4753e8]
xor esi, ecx
movzx ecx, bl
shl esi, 8
movzx ecx, byte [ecx + 0x4752e8]
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
mov dword [ebp - 0x10], esi
movzx ebx, byte [ecx + 0x4751e8]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + 0x4753e8]
xor ebx, ecx
movzx ecx, dl
mov edx, dword [ebp + 8]
shl ebx, 8
movzx ecx, byte [ecx + 0x4752e8]
xor ebx, ecx
movzx ecx, byte [edx]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ecx
cmp ecx, 2
jbe 0x4523f7
lea ecx, [edx + 0x28]
mov dword [ebp - 0xc], ecx
nop dword [eax]
mov edx, edi
shr ebx, 0x10
shr edx, 0x10
mov ecx, edi
shl ecx, 0x10
xor edx, ecx
mov ecx, dword [ebp - 0x18]
shl ecx, 0x10
xor ebx, ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0x10]
mov esi, ebx
mov edx, ecx
mov dword [ebp - 0x18], esi
shl ecx, 8
shr edx, 8
xor edx, ecx
mov ecx, dword [ebp - 0x10]
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
mov ecx, eax
mov dword [ebp - 4], edx
mov edx, ebx
xor edi, dword [ebp - 4]
shl ecx, 0x10
mov dword [ebp - 0x10], edi
mov edi, eax
shr edi, 0x10
xor edi, ecx
shr edx, 8
mov ecx, dword [ebp - 0x10]
and edx, 0xff00ff
xor esi, ecx
mov dword [ebp - 0x1c], edx
shr ecx, 8
shl esi, 8
xor esi, ecx
mov ecx, ebx
xor ecx, dword [ebp - 0x10]
and esi, 0xff00ff
shl ecx, 8
xor esi, ecx
mov ecx, dword [ebp - 4]
xor esi, edx
mov edx, ecx
shl ecx, 0x10
xor esi, edi
shr edx, 0x10
xor edx, ecx
mov ecx, dword [ebp - 8]
xor ebx, edx
mov edx, ecx
shl ecx, 8
shr edx, 8
xor edx, ecx
mov ecx, dword [ebp - 8]
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
mov ecx, esi
xor edi, edx
xor ecx, ebx
mov dword [ebp - 0x10], edi
xor eax, ecx
mov edi, ebx
shl ebx, 0x10
shr edi, 0x10
xor edi, ebx
mov ebx, esi
xor edi, esi
shr ebx, 0x10
shl esi, 0x10
xor ebx, esi
mov edx, ebx
mov ecx, ebx
shl ecx, 8
shr edx, 8
xor edx, ecx
mov ecx, ebx
and edx, 0xff00ff
shl ecx, 8
xor edx, ecx
mov ecx, dword [ebp - 0x10]
xor edx, ecx
mov esi, ecx
xor dword [ebp - 4], edx
mov edx, edi
shl ecx, 0x10
shr edx, 8
shr esi, 0x10
xor esi, ecx
mov ecx, edi
shl ecx, 8
xor edx, ecx
shl edi, 8
mov ecx, dword [ebp - 0xc]
and edx, 0xff00ff
xor edx, dword [ecx - 4]
xor eax, dword [ecx]
xor edx, edi
xor dword [ebp - 8], edx
mov ecx, esi
mov edi, dword [ebp - 0x18]
mov edx, edi
shr ecx, 8
xor edx, esi
shl edx, 8
xor edi, esi
xor edx, ecx
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
and edx, 0xff00ff
shl edi, 8
xor edx, edi
xor ecx, dword [esi + 8]
xor edx, dword [esi + 4]
xor edx, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
xor edx, ebx
mov ecx, edx
mov esi, dword [ebp - 4]
shr ecx, 0x18
movzx ebx, byte [ecx + 0x4753e8]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + 0x4752e8]
xor ebx, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + 0x4751e8]
xor ebx, ecx
movzx ecx, dl
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, esi
shr ecx, 0x18
movzx edx, byte [ecx + 0x4753e8]
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
movzx ecx, byte [ecx + 0x4752e8]
xor edx, ecx
mov ecx, esi
shr ecx, 8
movzx ecx, cl
shl edx, 8
movzx ecx, byte [ecx + 0x4751e8]
xor edx, ecx
mov ecx, esi
movzx ecx, cl
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
mov ecx, eax
shr ecx, 0x18
movzx esi, byte [ecx + 0x4753e8]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ebp - 8]
shl esi, 8
movzx ecx, byte [ecx + 0x4752e8]
xor esi, ecx
mov ecx, eax
shr ecx, 8
movzx eax, al
movzx ecx, cl
shl esi, 8
movzx eax, byte [eax + str.cw]
movzx ecx, byte [ecx + 0x4751e8]
xor esi, ecx
shl esi, 8
xor esi, eax
mov eax, edi
shr eax, 0x18
movzx ecx, byte [eax + 0x4753e8]
mov eax, edi
shr eax, 0x10
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x4752e8]
xor ecx, eax
mov eax, edi
shr eax, 8
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x4751e8]
xor ecx, eax
mov eax, edi
movzx eax, al
mov edi, edx
shl ecx, 8
shl edx, 0x10
shr edi, 0x10
movzx eax, byte [eax + str.cw]
xor edi, edx
xor ecx, eax
mov edx, edi
mov dword [ebp - 8], ecx
mov eax, esi
shl eax, 0x10
mov ecx, esi
shr ecx, 0x10
xor ecx, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
mov eax, ebx
shl eax, 8
mov ecx, ebx
shr ecx, 8
xor ecx, eax
shl ebx, 8
mov eax, dword [ebp - 8]
and ecx, 0xff00ff
xor ecx, ebx
mov ebx, eax
shl eax, 0x10
mov dword [ebp - 4], ecx
mov ecx, edi
xor esi, dword [ebp - 4]
shr ebx, 0x10
xor edx, esi
xor ebx, eax
shl edx, 8
mov eax, esi
shr ecx, 8
shr eax, 8
and ecx, 0xff00ff
xor edx, eax
mov dword [ebp - 0x1c], ecx
mov eax, edi
and edx, 0xff00ff
xor eax, esi
shl eax, 8
xor edx, eax
xor edx, ecx
mov eax, dword [ebp - 4]
xor edx, ebx
mov esi, dword [ebp - 0x10]
mov ecx, eax
shr ecx, 0x10
shl eax, 0x10
xor ecx, eax
add dword [ebp - 0x14], 2
xor edi, ecx
mov eax, esi
shl eax, 8
mov ecx, esi
shr ecx, 8
xor ecx, eax
mov eax, esi
shl eax, 8
and ecx, 0xff00ff
xor ecx, eax
mov esi, edi
xor ebx, ecx
shr esi, 0x10
mov eax, edx
xor eax, edi
shl edi, 0x10
xor dword [ebp - 8], eax
xor esi, edi
xor esi, edx
mov edi, edx
shl edx, 0x10
shr edi, 0x10
xor edi, edx
mov edx, ebx
mov ecx, edi
shr edx, 0x10
shr ecx, 8
mov eax, edi
shl eax, 8
xor ecx, eax
mov eax, edi
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov eax, esi
xor ecx, ebx
shl eax, 8
xor dword [ebp - 4], ecx
mov ecx, esi
shr ecx, 8
xor ecx, eax
shl ebx, 0x10
mov eax, dword [ebp - 0xc]
and ecx, 0xff00ff
xor edx, ebx
shl esi, 8
xor ecx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
xor ecx, esi
mov esi, dword [ebp - 0xc]
xor dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
mov ebx, ecx
xor ebx, edx
xor ecx, edx
xor eax, dword [esi + 0x10]
mov dword [ebp - 8], eax
mov eax, edx
mov edx, dword [ebp - 0x10]
shl ebx, 8
shr eax, 8
xor ebx, eax
shl ecx, 8
mov eax, dword [ebp - 4]
and ebx, 0xff00ff
xor eax, dword [esi + 0x18]
xor ebx, ecx
xor ebx, dword [esi + 0x14]
xor ebx, dword [ebp - 0x1c]
mov dword [ebp - 4], eax
xor ebx, edi
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax + 0x4751e8]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl eax, 8
add dword [ebp - 0xc], 0x20
movzx ecx, byte [ecx + str.cw]
xor eax, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl eax, 8
movzx ecx, byte [ecx + 0x4753e8]
xor eax, ecx
movzx ecx, dl
mov edx, dword [ebp - 8]
shl eax, 8
movzx ecx, byte [ecx + 0x4752e8]
xor eax, ecx
mov ecx, edx
shr ecx, 0x18
movzx edi, byte [ecx + 0x4751e8]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl edi, 8
movzx ecx, byte [ecx + 0x4753e8]
xor edi, ecx
movzx ecx, dl
shl edi, 8
mov edx, dword [ebp - 4]
movzx ecx, byte [ecx + 0x4752e8]
xor edi, ecx
mov ecx, ebx
shr ecx, 0x18
movzx esi, byte [ecx + 0x4751e8]
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
shl esi, 8
movzx ecx, byte [ecx + 0x4753e8]
xor esi, ecx
movzx ecx, bl
shl esi, 8
movzx ecx, byte [ecx + 0x4752e8]
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
mov dword [ebp - 0x10], esi
movzx ebx, byte [ecx + 0x4751e8]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + 0x4753e8]
xor ebx, ecx
movzx ecx, dl
shl ebx, 8
movzx ecx, byte [ecx + 0x4752e8]
xor ebx, ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ebx
jl 0x451f20
mov edx, dword [ebp + 8]
jmp 0x4523fc
mov ecx, 2
add ecx, ecx
xor edi, dword [edx + ecx*8 + 8]
xor esi, dword [edx + ecx*8 + 0xc]
xor ebx, dword [edx + ecx*8 + 0x10]
xor eax, dword [edx + ecx*8 + 4]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], edi
pop edi
mov dword [ecx + 8], esi
pop esi
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 0xc], ebx
pop ebx
mov esp, ebp
pop ebp
ret