Function at 0x425e20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
cmp byte [esp + 0x64], 0
je 0x425e70
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
mov ebp, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x425e40
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425e50
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1f
test edx, edx
jns 0x425e77
mov eax, 0xffffffff
jmp 0x425e80
xor ebx, ebx
jmp 0x4260e7
add eax, ecx
lea eax, [eax*2 + 0x3e]
push eax
call fcn.004080f0
add esp, 4
movzx ecx, word [ebp]
mov edx, eax
test cx, cx
je 0x425eb2
add ebp, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x425ea0
mov dword [esp + 0x3c], eax
mov eax, edx
mov word [edx], 0x5c
mov dword [esp], 0xe43fe20d
mov dword [esp + 4], 0xf804e61a
mov dword [esp + 8], 0xfc07fa18
mov dword [esp + 0xc], 0xf00bfe2e
mov dword [esp + 0x10], 0xf407f210
mov dword [esp + 0x14], 0x881bf610
mov dword [esp + 0x18], 0x8c758a50
mov dword [esp + 0x1c], 0x806a8e69
mov dword [esp + 0x20], 0x84668209
mov dword [esp + 0x24], 0x986b8661
mov dword [esp + 0x28], 0x9c629a45
mov dword [esp + 0x2c], 0x907a9e6b
mov dword [esp + 0x30], 0x946c9252
mov dword [esp + 0x34], 0xa86a9668
mov dword [esp + 0x38], 0xacabaa45
mov ebp, 0x40d4bca8
mov esi, 0xbf2b4356
nop
nop
movzx edi, byte [esp + ebp - 0x40d4bca8]
mov ecx, esi
or ecx, edi
lea ebx, [ebp + 1]
or edi, ebx
mov edx, ebp
sub edx, edi
and edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
add ecx, 0xf95a1ab7
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + ebp - 0x40d4bca8], cl
dec esi
mov ebp, ebx
cmp ebx, 0x40d4bce4
jne 0x425f40
mov esi, eax
add esi, 2
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
test cx, cx
je 0x425fb1
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x425fa0
mov word [esi], 0
movzx ecx, word [esp]
test cx, cx
je 0x425fe1
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425fd0
mov word [esi], 0
mov dword [esp + 0x40], 0x654a6348
mov dword [esp + 0x44], 0x69056703
mov dword [esp + 0x48], 0x6d6c6b06
xor eax, eax
mov ecx, eax
add cl, 0xf2
xor cl, byte [esp + eax + 0x40]
add cl, 0x70
mov byte [esp + eax + 0x40], cl
inc eax
cmp eax, 0xc
jne 0x426000
mov dword [esp], 0x37973579
mov dword [esp + 4], 0x3b963991
mov dword [esp + 8], 0x3f513d8f
mov dword [esp + 0xc], 0x3ab0157
mov dword [esp + 0x10], 0x7a205aa
mov dword [esp + 0x14], 0xbbd09a7
mov dword [esp + 0x18], 0xf6e0dbf
mov dword [esp + 0x1c], 0x13b3115d
mov dword [esp + 0x20], 0x17ba15bd
mov word [esp + 0x24], 0x1918
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea esi, [eax + 0x544f0894]
mov ecx, 0x6b
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
mov edx, ecx
xor edx, 0xa1
and ecx, 0x5e
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax], cl
mov ecx, eax
xor ecx, 0x7ffffffe
mov edx, eax
or edx, 1
and edx, ecx
xor eax, 1
lea eax, [eax + edx*2]
cmp eax, 0x26
jb 0x426070
lea eax, [esp + 0x40]
mov ecx, esp
push 0
push 4
push 0xc00000
push eax
mov esi, dword [esp + 0x4c]
push esi
push ecx
mov eax, dword [esp + 0x84]
push dword [eax]
call fcn.00421e20
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408100
add esp, 4
mov eax, ebx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10