Function at 0x424c25
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x94
mov dword [esp], 0x152072b
mov dword [esp + 4], 0xd6f0371
mov dword [esp + 8], 0x97a0f6f
mov dword [esp + 0xc], 0x157a0b4b
mov dword [esp + 0x10], 0x115a1764
mov dword [esp + 0x14], 0x1d6e1373
mov dword [esp + 0x18], 0x19311f7f
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x1b18
mov byte [esp + 0x20], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
mov esi, 0x29ceffe
sub esi, ecx
or esi, edx
mov edi, ecx
sub edi, edx
add edi, esi
add edi, 0x1631001
and edi, esi
mov edx, edi
not edx
and edx, 0xd10affa
add edx, edx
sub edx, edi
and edi, 0x10affa
lea esi, [edx + edi*2]
lea edi, [edx + edi*2]
add edi, 0xf2ef5005
lea esi, [esi*2 - 0x1a215ff6]
and esi, 2
mov ebx, esi
and ebx, edi
and edi, 0xfe
and edx, 1
or edx, edi
xor edx, esi
lea edx, [edx + ebx*2]
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x21
jb 0x424b40
lea esi, [esp + 0x76]
mov edx, esp
mov edi, esi
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x92]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x50]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x44dee0]
mov dword [esp], 0xb3f2f1d3
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, 0xac
xor dl, byte [esp + ecx]
add dl, 0xa4
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 7
jne case.default.0x424c1e
xor ecx, ecx
cmp eax, dword [esp]
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x4484fc]
mov ebp, dword [esp + 0x50]
mov ebx, esi
test ebp, ebp
jns 0x424c36
mov eax, 0xffffffff
jmp 0x424c3d
lea eax, [ebp*2]
push eax
call fcn.00408580
add esp, 4
mov esi, eax
push edi
push ebp
push eax
push 0xe
push ebx
push 0
call dword [0x44dee0]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448504]
xor ebx, ebx
jmp dword [0x44850c]
push esi
call fcn.00408590
add esp, 4
xor ebx, ebx
jmp case.0x424c1e.0
mov eax, dword [esp + 0x50]
mov ecx, eax
mov ebx, esi
add ecx, 9
jns 0x424c8e
mov eax, 0xffffffff
jmp 0x424c95
lea eax, [eax*2 + 0x12]
mov edi, dword [esp + 0xa8]
push eax
call fcn.00408580
add esp, 4
mov ebp, eax
mov dword [esp], 0xff0ef904
mov dword [esp + 4], 0xe305fd1d
mov dword [esp + 8], 0xe707e10f
mov dword [esp + 0xc], 0xeb0fe50f
mov dword [esp + 0x10], 0xefeee97f
mov byte [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea esi, [eax + 0xaa]
mov ecx, 0x55
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
add cl, 0xae
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 0x1e
mov esi, eax
xor esi, 1
add esi, eax
mov eax, esi
sub eax, edx
and esi, ecx
or eax, ecx
add eax, esi
cmp eax, 0x15
jb 0x424ce0
mov esi, ebx
movzx ecx, word [ebx]
mov eax, ebp
test cx, cx
je 0x424d41
lea edx, [esi + 2]
mov eax, ebp
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424d30
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x424d71
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424d60
mov word [eax], 0
lea eax, [esp + 0x70]
push eax
push ebp
call fcn.004411e0
add esp, 8
not eax
shr eax, 0x1f
mov dword [esp + 0x6c], ebp
jmp dword [eax*4 + 0x448514]
mov eax, dword [esp + 0x70]
shr eax, 2
and eax, 4
jmp dword [eax + 0x44852c]
jmp dword [0x448534]
mov eax, dword [0x448588]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax