Function at 0xedab20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov dword [esp + 0x1c], 0
mov dword [esp + 4], 0xf4f5f6f7
mov edx, 0x92bb3fd4
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x6d44c030]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xd5
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xdc
mov byte [esp + edx + 0x6d44c030], al
inc edx
cmp edx, 0x92bb3fd8
jne 0xedab40
mov ebp, dword [esp + 4]
mov eax, dword [0xf00374]
test eax, eax
je 0xedabd6
xor ecx, ecx
mov edx, dword [0xf00378]
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x9abdb589
je 0xedabb0
inc ecx
cmp eax, ecx
jne 0xedaba0
jmp 0xedabd6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebp
je 0xedabd6
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push 5
push 4
push dword [0xf0037c]
push eax
call fcn.00ef0f10
add esp, 0x1c
mov ebp, eax
mov dword [esp + 4], 0xb7f60904
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov esi, 0x85f5f97e
mov edi, 0x7a0a0681
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi + 0x7a0a0686]
mov eax, edi
or eax, ecx
lea ebx, [edi - 0x7a0a0600]
and ebx, ecx
xor ebx, eax
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xfd
mul dl
mov edx, eax
add dl, cl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0x8a
mov byte [esp + esi + 0x7a0a0686], al
inc esi
dec edi
cmp esi, 0x85f5f985
jne 0xedac00
cmp ebp, dword [esp + 4]
jne 0xedacf0
push dword [esp + 0x1c]
call fcn.00eee1b0
add esp, 4
mov ebp, eax
mov edi, dword [esp + 0x1c]
mov dword [esp + 4], 0xf4f5f6f7
mov esi, 0x92bb3fd4
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x6d44c030]
mov ebx, edx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xd5
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0xdc
mov byte [esp + esi + 0x6d44c030], al
inc esi
cmp esi, 0x92bb3fd8
jne 0xedac80
mov eax, dword [esp + 4]
mov ecx, dword [0xf00374]
test ecx, ecx
je 0xedad16
xor edx, edx
mov esi, dword [0xf00378]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0xedacf7
inc edx
cmp ecx, edx
jne 0xedace0
jmp 0xedad16
xor ebx, ebx
jmp 0xedb059
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0xedad16
push 0
push edi
push ebp
push 5
push 4
push dword [0xf0037c]
push ecx
call fcn.00ef0f10
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0xedb050
mov esi, dword [ebp]
xor eax, eax
mov ecx, esi
mov edx, ebp
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 0xedad30
test ebx, ebx
jns 0xedad50
mov eax, 0xffffffff
push eax
call fcn.00ebc880
add esp, 4
mov ebx, eax
mov ecx, ebp
jmp 0xedad70
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0xedad93
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0xedad60
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0xedad80
jmp 0xedad60
mov dword [esp], 0
cmp eax, ebx
je 0xedb044
mov word [eax], 0
movzx esi, word [ebx]
test si, si
je 0xedadfc
mov eax, ebx
add eax, 2
mov dword [esp], 0
mov ecx, esi
jmp 0xedadce
inc dword [esp]
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0xedadfc
cmp cx, 0x7f
jbe 0xedadc0
movzx edx, cx
cmp edx, 0x7ff
ja 0xedadf0
add dword [esp], 2
jmp 0xedadc3
cmp cx, 0xffff
je 0xedadc3
add dword [esp], 3
jmp 0xedadc3
mov dword [esp + 0x24], ebp
mov eax, dword [esp]
inc eax
push eax
call fcn.00ebc880
add esp, 4
mov ebp, eax
mov dword [esp + 0x18], eax
test si, si
mov dword [esp + 0x20], ebx
je 0xedaf47
mov ebp, dword [esp + 0x18]
cmp dword [esp], 0
je 0xedaf47
mov edx, ebx
mov ecx, dword [esp]
mov ebp, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, si
lea esi, [edx + 2]
cmp ax, 0x7f
ja 0xedae60
lea edi, [ebp + 1]
mov byte [ebp], al
jmp 0xedaef0
cmp eax, 0x7ff
ja 0xedae90
cmp ecx, 2
jb 0xedae90
mov edx, eax
shr edx, 6
add dl, 0xc0
mov byte [ebp], dl
and al, 0x3f
or al, 0x80
lea edi, [ebp + 2]
mov byte [ebp + 1], al
jmp 0xedaef0
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0xedaf0a
cmp ecx, 4
jb 0xedaf0a
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 eax, esi
and al, 0x3f
or al, 0x80
lea edi, [ebp + 4]
mov byte [ebp + 3], al
mov esi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, ebp
sub ecx, edi
mov edx, esi
mov ebp, edi
movzx esi, word [edx]
test si, si
je 0xedaf47
test ecx, ecx
jne 0xedae40
jmp 0xedaf47
movzx edx, di
cmp edx, 0xdc00
jne 0xedaf19
mov edx, esi
jmp 0xedaef8
cmp ecx, 3
jb 0xedaf43
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 edi, [ebp + 3]
jmp 0xedaef0
mov edi, ebp
jmp 0xedaef0
mov byte [ebp], 0
mov dword [esp + 4], 0xacd7d5b4
mov dword [esp + 8], 0xa2dfdeaf
mov dword [esp + 0xc], 0xd1d299d1
mov word [esp + 0x10], 0x4bd4
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
mov eax, 0x281ea212
mov ecx, 0xd7e15dee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x281ea20e]
mov edi, ecx
xor edi, edx
mov esi, edx
mov dword [esp + 0x28], edx
lea edx, [ecx + 0x40000000]
or edx, edi
add edx, eax
mov ebx, edx
and ebx, 0xfffffffd
mov edi, edx
or edi, 0xfffffffd
inc edi
imul edi, ebx
mov ebx, edx
or ebx, 2
lea ebp, [edi + esi]
shr edx, 1
and edx, 1
imul edx, ebx
add edx, edx
sub ebp, edx
lea esi, [eax + ebp]
lea ebx, [eax + ebp]
dec ebx
lea ebp, [esi*2 - 2]
and ebp, 0x6ecdab54
or ebx, 0xc8992a55
sub edx, edi
sub edx, dword [esp + 0x28]
add edx, ecx
or edx, 0x3766d5aa
and edx, ebx
sub edx, ebp
lea esi, [edx*2 + 2]
inc edx
sub edx, esi
inc dl
mov byte [esp + eax - 0x281ea20e], dl
inc eax
dec ecx
cmp eax, 0x281ea226
jne 0xedaf90
lea eax, [esp + 4]
mov ecx, dword [esp + 0x40]
push dword [esp]
mov esi, dword [esp + 0x1c]
push esi
push eax
call fcn.00ebd410
mov dword [esp], eax
push esi
call fcn.00ebc890
add esp, 4
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
push ebx
call fcn.00ebc890
add esp, 4
mov ebx, dword [esp]
push ebp
call fcn.00eee210
add esp, 4
mov eax, ebx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret