Function at 0x425cf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [esp + 0x18], 0
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov edi, eax
and edi, 4
mov edx, ecx
xor edx, 0xc60c00fa
add edx, edi
xor edx, esi
mov esi, edx
xor esi, 0x668d14b
and edx, 0xc00400b4
add edx, edx
sub edx, esi
mov esi, edx
and esi, 0x1d
xor edx, 0x1d
lea edx, [edx + esi*2]
add dl, 0x4c
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x425d20
mov eax, dword [esp]
mov ecx, dword [0x44d300]
test ecx, ecx
je 0x425db4
xor edx, edx
mov esi, dword [0x44d304]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x425d90
inc edx
cmp ecx, edx
jne 0x425d80
jmp 0x425db4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x425db4
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44d308]
call fcn.0043d770
add esp, 0x1c
mov dword [esp], 0xa1e6e7f8
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x29
xor dl, byte [esp + ecx]
add dl, 0x33
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 7
jne 0x425dd0
xor ebx, ebx
cmp eax, dword [esp]
jne 0x4261b8
push dword [esp + 0x18]
call fcn.0043ad80
xor ebx, ebx
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax]
mov edi, ebx
and edi, 4
mov edx, eax
xor edx, 0xc60c00fa
add edx, edi
xor edx, esi
mov esi, edx
xor esi, 0x668d14b
and edx, 0xc00400b4
add edx, edx
sub edx, esi
mov esi, edx
and esi, 0x1d
xor edx, 0x1d
lea edx, [edx + esi*2]
add dl, 0x4c
mov byte [esp + eax], dl
inc eax
add ebx, 2
cmp eax, 8
jne 0x425e20
mov eax, dword [esp]
mov edx, dword [0x44d300]
test edx, edx
je 0x425eaf
xor esi, esi
mov edi, dword [0x44d304]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x61813e67
je 0x425e90
inc esi
cmp edx, esi
jne 0x425e80
jmp 0x425eaf
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x425eaf
push 0
push ecx
push ebp
push 5
push 0x10
push edx
push dword [0x44d308]
call fcn.0043d770
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x4261af
mov esi, dword [ebp]
xor eax, eax
mov ecx, esi
mov edx, ebp
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, edi
test ecx, ecx
jne 0x425ed0
test ebx, ebx
jns 0x425ef0
mov eax, 0xffffffff
push eax
call fcn.004097b0
add esp, 4
mov ebx, eax
mov ecx, ebp
jmp 0x425f10
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x425f33
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x425f00
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x425f20
jmp 0x425f00
xor edx, edx
cmp eax, ebx
mov dword [esp + 0x20], ebx
je 0x4261a1
mov word [eax], 0
movzx edi, word [ebx]
test di, di
je 0x425f9d
mov eax, ebx
add eax, 2
xor edx, edx
mov ecx, edi
jmp 0x425f76
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x425f9d
cmp cx, 0x7f
jbe 0x425f60
mov esi, edx
movzx edx, cx
cmp edx, 0x7ff
ja 0x425f90
mov edx, esi
add edx, 2
jmp 0x425f6b
cmp cx, 0xffff
mov edx, esi
je 0x425f6b
add edx, 3
jmp 0x425f6b
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], edx
lea eax, [edx + 1]
push eax
call fcn.004097b0
add esp, 4
mov ebp, eax
mov dword [esp + 0x10], eax
test di, di
je 0x4260f7
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x14], 0
je 0x4260f7
mov edx, ebx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
movzx eax, di
lea edi, [edx + 2]
cmp ax, 0x7f
ja 0x426000
lea esi, [ebp + 1]
mov byte [ebp], al
jmp 0x4260a0
cmp eax, 0x7ff
ja 0x426030
cmp ecx, 2
jb 0x426030
mov edx, eax
shr edx, 6
add dl, 0xc0
mov byte [ebp], dl
and al, 0x3f
or al, 0x80
mov byte [ebp + 1], al
lea esi, [ebp + 2]
jmp 0x4260a0
mov esi, eax
and esi, 0xfc00
cmp esi, 0xd800
jne 0x4260ba
cmp ecx, 4
jb 0x4260ba
movzx esi, word [edx + 2]
add edx, 4
shl eax, 0xa
add eax, esi
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [ebp], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [ebp + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 2], al
mov ebx, esi
mov eax, esi
xor eax, 0xc0
or ebx, 0x3f
and ebx, eax
add bl, 0x80
lea esi, [ebp + 4]
mov byte [ebp + 3], bl
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, ebp
sub ecx, esi
mov edx, edi
mov ebp, esi
movzx edi, word [edx]
test di, di
je 0x4260f7
test ecx, ecx
jne 0x425fe0
jmp 0x4260f7
movzx edx, si
cmp edx, 0xdc00
jne 0x4260c9
mov edx, edi
jmp 0x4260a8
cmp ecx, 3
jb 0x4260f3
mov edx, eax
shr edx, 0xc
or dl, 0xe0
mov byte [ebp], dl
mov edx, eax
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ebp + 1], dl
and al, 0x3f
or al, 0x80
mov byte [ebp + 2], al
lea esi, [ebp + 3]
jmp 0x4260a0
mov esi, ebp
jmp 0x4260a0
mov byte [ebp], 0
mov dword [esp], 0xd8e597b8
mov dword [esp + 4], 0xdeedead9
mov dword [esp + 8], 0xe7e223ef
mov dword [esp + 0xc], 0x7de0
mov eax, esp
mov ecx, 0xa208b241
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [eax]
xor edi, ecx
mov edx, 0x48
sub edx, edi
lea ebx, [edi + 0xb7]
or ebx, 1
mov esi, edi
sub esi, ebx
add edi, 0xd5d484b7
mov ebx, edi
not ebx
and edi, 0x21
and edx, 0xde
or edx, edi
and ebx, 1
or ebx, edx
xor ebx, 0xdf
add ebx, esi
mov dl, 0x48
sub dl, bl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xa208b231
jne 0x426130
mov eax, esp
mov ecx, dword [esp + 0x38]
push dword [esp + 0x14]
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.0040a550
mov ebx, eax
push esi
call fcn.004097c0
add esp, 4
mov ebp, dword [esp + 0x1c]
jmp 0x4261a3
xor ebx, ebx
push dword [esp + 0x20]
call fcn.004097c0
add esp, 4
push ebp
call fcn.0043ae30
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret