Function at 0x425c8e
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov dword [esp + 4], 0x91dd9ffb
mov dword [esp + 8], 0x95029300
mov dword [esp + 0xc], 0x893597d0
mov dword [esp + 0x10], 0x8d298b1c
mov dword [esp + 0x14], 0x81228feb
mov dword [esp + 0x18], 0x851a8334
mov dword [esp + 0x1c], 0xf9188713
mov dword [esp + 0x20], 0xfd5dfb5c
mov dword [esp + 0x24], 0xf15cff6e
mov dword [esp + 0x28], 0xf560f36b
mov dword [esp + 0x2c], 0xe95af750
mov dword [esp + 0x30], 0xed78eb58
mov dword [esp + 0x34], 0xe148ef7d
mov dword [esp + 0x38], 0xe57ee37b
mov dword [esp + 0x3c], 0xd973e743
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0xdbd8
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov ecx, 0xa5
mov edx, 0xe2a9a5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0xa1]
mov ebx, ecx
and ebx, esi
add ebx, ebx
lea edi, [ecx + esi]
add edi, 0xf1d56500
mov ebp, edx
sub ebp, esi
and ebp, ebx
not ebx
and ebx, edi
sub ebx, ebp
add bl, 0xc7
mov byte [esp + ecx - 0xa1], bl
inc ecx
dec edx
cmp ecx, 0xe9
jne 0x425b60
lea esi, [esp + 0x4a]
lea edx, [esp + 4]
mov edi, esi
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x86]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, esp
push eax
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x44cd54]
mov dword [esp + 4], 0x571619c7
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 4]
mov ebp, ecx
and ebp, 4
mov ebx, ecx
and ebx, 2
mov edx, ebx
xor edx, 2
imul edx, ebp
or ebp, 2
imul ebp, ebx
or edx, ecx
xor edx, 0xbb1fec46
add edx, ebp
mov ebx, edi
not ebx
or ebx, 0xd9a34fbc
lea ebp, [edi + ebx]
inc ebp
and edi, 0x43
mov ebx, edi
xor ebx, 0x43
xor edi, 0x265cb043
or edi, ebx
or ebp, edi
lea edi, [edx + edx]
not edi
add edi, edx
and edi, 0x265cb043
and edx, 0x99034c3c
or edx, edi
xor edx, ebp
mov edi, edx
and edi, 0x21
xor edx, 0x586062a1
lea ebx, [edx + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 4], bl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 7
jb case.default.0x425c87
xor ecx, ecx
cmp eax, dword [esp + 4]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x447604]
mov ebp, dword [esp]
test ebp, ebp
jns 0x425c9c
mov eax, 0xffffffff
jmp 0x425ca3
lea eax, [ebp*2]
push eax
call fcn.004083b0
add esp, 4
mov edi, eax
mov eax, esp
push eax
push ebp
push edi
push 0x1e
push esi
push 0
call dword [0x44cd54]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44760c]
xor ebx, ebx
xor eax, eax
jmp dword [0x447614]
mov dword [esp + 4], 0x137a116c
mov dword [esp + 8], 0x1f881d81
mov dword [esp + 0xc], 0x1b771974
mov dword [esp + 0x10], 0x7640596
mov dword [esp + 0x14], 0x3900169
mov dword [esp + 0x18], 0xf0e0d60
mov byte [esp + 0x1c], 0
mov eax, 0x84
mov ecx, 0x7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x80]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0x6b
sub bl, dl
mov byte [esp + eax - 0x80], bl
inc eax
dec ecx
cmp eax, 0x9d
jne 0x425d20
push 0
push 0
lea eax, [esp + 0xc]
push eax
push edi
push dword [esp + 0xac]
call fcn.00421790
add esp, 0x14
mov ebx, eax
jmp dword [0x447614]
push edi
call fcn.004083c0
add esp, 4
mov eax, ebx
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret