Function at 0x425390
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp + 0xc], 0xd797c9e5
mov dword [esp + 0x10], 0xd3a2d5a4
mov dword [esp + 0x14], 0xdfbfd19c
mov dword [esp + 0x18], 0xdbbbdda0
mov dword [esp + 0x1c], 0xe7e6d9f5
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
xor ecx, ecx
movzx edx, byte [esp + ecx + 0xc]
mov esi, ecx
and esi, 0xc
mov edi, ecx
and edi, 2
mov ebp, edi
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, edi
mov ebx, ecx
xor ebx, 0xa11c02ce
add ebx, ebp
add ebx, esi
mov esi, ebx
and esi, edx
add ebx, edx
add esi, esi
sub ebx, esi
add bl, 0xfa
mov byte [esp + ecx + 0xc], bl
inc ecx
cmp ecx, 0x18
jne 0x4253d0
lea esi, [esp + 0xaa]
lea edx, [esp + 0xc]
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x6c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44a3a0]
mov ebx, dword [esp + 0x6c]
test ebx, ebx
jns 0x425459
mov eax, 0xffffffff
jmp 0x42545c
lea eax, [ebx + ebx]
push eax
call fcn.00408420
add esp, 4
push edi
push ebx
mov dword [esp + 0x48], eax
push eax
push 9
push esi
push 0
call dword [0x44a3a0]
mov dword [esp + 0xc], 0x832b81c4
mov dword [esp + 0x10], 0x87258537
mov dword [esp + 0x14], 0x8b388927
mov dword [esp + 0x18], 0x8f8e8d28
lea edx, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov eax, 0x6144f420
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x6144f414]
mov esi, eax
and esi, ecx
add ecx, eax
add esi, esi
mov edi, ecx
sub edi, esi
mov esi, edi
and esi, 0x5f
xor edi, 0x19a73b5f
lea esi, [edi + esi*2]
and edi, 1
and ecx, 1
and esi, 0xfe
lea ecx, [ecx + edi*2]
add ecx, esi
mov byte [esp + eax - 0x6144f414], cl
inc eax
cmp eax, 0x6144f432
jne 0x4254b0
lea ebp, [esp + 0x9a]
lea eax, [esp + 0xc]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xaa]
xor esi, esi
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0xd1a5cf88
mov dword [esp + 0x10], 0xd5b7d3a5
mov dword [esp + 0x14], 0xd9a4d7a5
mov dword [esp + 0x18], 0xdd9fdbbc
mov dword [esp + 0x1c], 0xe1b0dfbf
mov dword [esp + 0x20], 0xe590e383
mov dword [esp + 0x24], 0xe9e6e79f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0xc]
lea ecx, [esi + 0x5883a6cd]
xor ecx, eax
mov eax, ecx
xor eax, 2
and ecx, 0x7d
add ecx, ecx
sub ecx, eax
inc cl
mov byte [esp + esi + 0xc], cl
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
cmp esi, 0x1c
jb 0x425560
lea edx, [esp + 0xd4]
lea eax, [esp + 0xc]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf0]
lea eax, [esp + 0x28]
xor esi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0xc], 0x51a54f88
mov dword [esp + 0x10], 0x55b753a5
mov dword [esp + 0x14], 0x59a457a5
mov dword [esp + 0x18], 0x5d8a5bbc
mov dword [esp + 0x1c], 0x619c5f88
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x6360
nop
nop
nop
lea ecx, [esi + esi]
mov edi, ecx
and edi, 0x1a
mov eax, esi
xor eax, 0x8d
add eax, edi
xor al, byte [esp + esi + 0xc]
add al, 0x3f
mov byte [esp + esi + 0xc], al
and ecx, 2
xor esi, 1
add esi, ecx
cmp esi, 0x18
jb case.default.0x425675
lea esi, [esp + 0xbe]
lea eax, [esp + 0xc]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd2]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0x40]
add eax, 2
mov dword [esp + 0x78], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x4451a8]
push esi
inc edx