Function at 0x457138
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
mov ebx, edx
test ebx, ebx
js 0x457150
shr ebx, 2
mov esi, dword [eax + ebx*4]
dec ebx
push esi
jns 0x457149
mov eax, esp
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov byte [ebp - 9], 0
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a250
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov edx, dword [ebp - 8]
call fcn.0042a25c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov dl, 1
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
xor edx, edx
call fcn.004359a4
mov byte [ebp - 0xa], 0
xor esi, esi
cmp byte [ebp + 8], 6
jb 0x457410
mov byte [ebp - 0xb], 0
cmp esi, dword [ebp - 8]
jae 0x457574
mov eax, dword [0x45e7f4]
cmp byte [eax], 0
je 0x457229
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
jmp 0x4575b4
mov al, byte [ebp - 0xb]
call fcn.00458344
inc byte [ebp - 0xb]
mov eax, dword [0x45e648]
xor ecx, ecx
mov edx, 0x10000
call fcn.00402ec4
mov eax, dword [0x45e648]
mov byte [eax], 3
xor eax, eax
mov edx, dword [0x45e648]
inc edx
xor ecx, ecx
mov cl, al
add ecx, esi
mov ebx, dword [ebp - 4]
mov cl, byte [ebx + ecx]
mov byte [edx], cl
inc eax
inc edx
cmp al, 0x20
jne 0x457256
mov al, 1
mov dl, 0xbc
xor ecx, ecx
mov cl, al
mov ebx, dword [0x45e648]
mov cl, byte [ebx + ecx]
xor dl, cl
inc eax
cmp al, 0x20
jbe 0x45726e
mov eax, dword [0x45e648]
mov byte [eax + 0x21], dl
mov eax, dword [0x45e648]
mov dl, byte [ebp - 0xa]
mov byte [eax + 0x22], dl
call fcn.00459094
mov eax, dword [0x45e648]
mov cx, 0x23
mov edx, 0xffff
call fcn.00459224
call fcn.0045872c
mov eax, dword [0x45e76c]
cmp byte [eax], 0x33
je 0x4573d8
cmp byte [ebp - 0xb], 0xb
jne 0x457307
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
jmp 0x4575b4
xor ebx, ebx
mov eax, ebx
call fcn.00458344
inc ebx
mov eax, dword [0x45e648]
xor ecx, ecx
mov edx, 0x10000
call fcn.00402ec4
mov eax, dword [0x45e648]
mov byte [eax], 5
call fcn.00459094
mov eax, dword [0x45e648]
mov cx, 0x23
mov edx, 0xffff
call fcn.00459224
call fcn.0045872c
mov eax, dword [0x45e76c]
mov al, byte [eax]
cmp al, 0x55
je 0x457357
cmp bl, 0xb
jne 0x457309
mov edx, dword [0x45e76c]
cmp al, 0x55
je 0x4573a2
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
jmp 0x4575b4
mov eax, dword [0x45e6a8]
cmp byte [eax], 1
jne 0x4573b2
and esi, 0xfffe00
mov eax, dword [0x45e6a8]
cmp byte [eax], 2
jne 0x4573c2
and esi, 0xfffe00
mov eax, dword [0x45e6a8]
cmp byte [eax], 3
jne 0x4573d2
and esi, 0xfffc00
mov byte [ebp - 0xa], 0
jmp 0x4573e2
add esi, 0x20
inc byte [ebp - 0xa]
mov byte [ebp - 0xb], 0
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov edx, esi
call fcn.0042a26c
mov eax, dword [0x45e8c8]
mov eax, dword [eax]
call fcn.0045529c
cmp esi, dword [ebp - 8]
jb 0x4571de
jmp 0x457574
cmp esi, dword [ebp - 8]
jae 0x457574
mov eax, dword [0x45e7f4]
cmp byte [eax], 0
je 0x457464
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
jmp 0x4575b4
mov eax, dword [0x45e648]
xor ecx, ecx
mov edx, 0x10000
call fcn.00402ec4
mov eax, dword [0x45e648]
mov byte [eax], 3
xor eax, eax
mov edx, dword [0x45e648]
inc edx
xor ecx, ecx
mov cl, al
add ecx, esi
mov ebx, dword [ebp - 4]
mov cl, byte [ebx + ecx]
mov byte [edx], cl
inc eax
inc edx
cmp al, 0x20
jne 0x457486
mov al, 1
mov dl, 0xbc
xor ecx, ecx
mov cl, al
mov ebx, dword [0x45e648]
mov cl, byte [ebx + ecx]
xor dl, cl
inc eax
cmp al, 0x20
jbe 0x45749e
mov eax, dword [0x45e648]
mov byte [eax + 0x21], dl
mov eax, dword [0x45e648]
mov dl, byte [ebp - 0xa]
mov byte [eax + 0x22], dl
add esi, 0x20
inc byte [ebp - 0xa]
call fcn.00459094
cmp byte [ebp + 8], 3
jbe 0x4574eb
mov eax, dword [0x45e648]
mov cx, 0x23
mov edx, 0xffff
call fcn.00459224
jmp 0x4574fe
mov eax, dword [0x45e648]
mov cx, 0x21
mov edx, 0xffff
call fcn.00459224
call fcn.0045872c
mov eax, dword [0x45e76c]
cmp byte [eax], 0x33
je 0x45754b
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
jmp 0x4575b4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov edx, esi
call fcn.0042a26c
mov eax, dword [0x45e8c8]
mov eax, dword [eax]
call fcn.0045529c
cmp esi, dword [ebp - 8]
jb 0x457419
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.0042a26c
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
call fcn.004359a4
mov eax, dword [0x45e9b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
mov dl, 1
call fcn.004359a4
mov byte [ebp - 9], 1
mov al, byte [ebp - 9]
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 4