Function at 0x4259b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
cmp byte [esp + 0x64], 0
je 0x425a00
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 0x4259d0
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4259e0
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1f
test edx, edx
jns 0x425a07
mov eax, 0xffffffff
jmp 0x425a10
xor ebx, ebx
jmp 0x425c66
add eax, ecx
lea eax, [eax*2 + 0x3e]
push eax
call fcn.00408b60
add esp, 4
movzx ecx, word [ebp]
mov edi, eax
test cx, cx
je 0x425a42
add ebp, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x425a30
mov dword [esp + 0x3c], eax
mov word [esp], 0x2083
xor edx, edx
mov bl, 1
movzx ebp, byte [esp + edx]
lea esi, [edx - 0x39ee0669]
lea ecx, [edx + 0x97]
and ecx, esi
or ecx, ebp
and esi, ebp
sub ecx, esi
add cl, 0x48
mov byte [esp + edx], cl
mov edx, 1
xor ecx, ecx
test bl, 1
mov ebx, 0
jne 0x425a50
movzx edx, word [esp]
mov word [edi], dx
mov dword [esp], 0xe8cb16b9
mov dword [esp + 4], 0xec48ea56
mov dword [esp + 8], 0xe053ee4c
mov dword [esp + 0xc], 0xe457e232
mov dword [esp + 0x10], 0xf853e644
mov dword [esp + 0x14], 0xfc57fa5c
mov dword [esp + 0x18], 0xf041fe24
mov dword [esp + 0x1c], 0xf456f255
mov dword [esp + 0x20], 0xc852f67d
mov dword [esp + 0x24], 0xcc67ca6d
mov dword [esp + 0x28], 0xc076ce11
mov dword [esp + 0x2c], 0xc466c277
mov dword [esp + 0x30], 0xd878c606
mov dword [esp + 0x34], 0xdc66da64
mov dword [esp + 0x38], 0xd0dfde71
nop
nop
nop
mov edx, ecx
add dl, 0xfd
xor dl, byte [esp + ecx]
add dl, 0x18
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 0x3c
jne 0x425b00
add edi, 2
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
test cx, cx
je 0x425b41
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x425b30
mov word [edi], 0
movzx ecx, word [esp]
test cx, cx
je 0x425b71
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425b60
mov word [edi], 0
mov dword [esp + 0x40], 0xc4fdc2fb
mov dword [esp + 0x44], 0xd83ac620
mov dword [esp + 0x48], 0xdcdbda25
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x40]
mov edi, eax
and edi, 0x12
mov edx, ecx
xor edx, 0x329a2089
add edx, edi
mov edi, edx
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add dl, 0xb8
mov byte [esp + ecx + 0x40], dl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x425ba0
mov dword [esp], 0x1575135f
mov dword [esp + 4], 0x1974177f
mov dword [esp + 8], 0x1d331b89
mov dword [esp + 0xc], 0x1691f69
mov dword [esp + 0x10], 0x560036c
mov dword [esp + 0x14], 0x99f0769
mov dword [esp + 0x18], 0xd2c0b99
mov dword [esp + 0x1c], 0x31510f43
mov dword [esp + 0x20], 0x3558335b
mov word [esp + 0x24], 0x3736
xor eax, eax
nop
nop
mov ecx, eax
add cl, 2
xor cl, byte [esp + eax]
add cl, 0xf0
mov byte [esp + eax], cl
inc eax
cmp eax, 0x26
jne 0x425c20
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.004219f0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408b70
add esp, 4
mov eax, ebx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10