Function at 0x10895b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov word [esp + 8], 0x9d93
mov byte [esp + 0xa], 0x66
mov dword [esp + 0xb], 0
mov byte [esp + 0xf], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x19
xor cl, byte [esp + eax + 8]
add cl, 0x83
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 8
jne 0x10895f0
mov dword [esp + 0x10], 0x3a3c3812
mov word [esp + 0x14], 0xc73e
mov dword [esp + 0x16], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0xb3
xor cl, byte [esp + eax + 0x10]
add cl, 0x81
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xa
jne 0x1089620
mov dword [esp + 0x20], 0xa8f7cdcf
mov dword [esp + 0x24], 0xb78dbbaa
mov dword [esp + 0x28], 0xb6eef0b8
mov dword [esp + 0x2c], 0xb0bfbfbd
mov dword [esp + 0x30], 0xb8bdb7bb
mov dword [esp + 0x34], 0xbff6d1ba
mov dword [esp + 0x38], 0xc2818d85
mov dword [esp + 0x3c], 0xb282b0bc
mov dword [esp + 0x40], 0xb688fbd9
mov dword [esp + 0x44], 0xebc5ac8b
mov byte [esp + 0x48], 4
mov dword [esp + 0x49], 0
mov byte [esp + 0x4d], 0
mov ebx, 0x4be73d4b
mov ebp, 0x3418c2b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x4be73d2b]
mov eax, ebp
or eax, ecx
lea edi, [ebp - 0x3418c200]
and edi, ecx
xor edi, eax
and edi, ebx
add ecx, ebx
add edi, edi
mov eax, ecx
sub eax, edi
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x88
mov byte [esp + ebx - 0x4be73d2b], al
inc ebx
dec ebp
cmp ebx, 0x4be73d79
jne 0x10896b0
add edx, dword [esp]
mov dword [esp], edx
mov dword [esp + 4], 0x3a686f
xor ebx, ebx
mov edi, ebx
nop
nop
nop
movzx ebp, byte [esp + ebx + 4]
lea eax, [ebx - 0x292cc275]
xor eax, ebp
mov ecx, 0x292cc274
sub ecx, ebx
or ecx, eax
mov eax, ecx
not eax
and ecx, 2
mov edx, eax
and edx, 0x8d
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
sub eax, ebx
add eax, edx
add eax, 0x292cc275
mov ecx, ebp
not ecx
and ecx, eax
not eax
and eax, ebp
sub eax, ecx
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add al, 0x48
mov byte [esp + ebx + 4], al
and edi, 1
not ebx
or ebx, 1
sub edi, ebx
mov ebx, edi
cmp edi, 4
jb 0x1089700
movzx ebx, byte [esp + 4]
mov ecx, dword [esp]
mov edi, ecx
test bl, bl
je 0x108978b
lea eax, [esp + 5]
mov edi, ecx
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x1089780
mov byte [edi], 0
mov ecx, dword [esp + 0x1c]
movzx ebx, byte [ecx + 0x60]
test bl, bl
je 0x10897ab
lea eax, [ecx + 0x61]
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x10897a0
mov byte [edi], 0
movzx ebx, byte [esp + 0x20]
test bl, bl
je 0x10897cb
lea eax, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x10897c0
mov byte [edi], 0
movzx ebx, byte [esi]
test bl, bl
je 0x10897eb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x10897e0
mov byte [edi], 0
movzx ebx, byte [esp + 0x10]
test bl, bl
je 0x108980b
lea eax, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x1089800
mov byte [edi], 0
mov eax, dword [esp + 0x6c]
movzx ebx, byte [eax]
test bl, bl
je 0x108982b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x1089820
mov byte [edi], 0
movzx edx, byte [esp + 8]
test dl, dl
je 0x108984b
lea eax, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x1089840
mov byte [edi], 0
sub edi, dword [esp]
add dword [ecx + 0x80], edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0xc