Function at 0x423ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
cmp byte [esp + 0x68], 0
je 0x423b00
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
mov ebp, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x423ad0
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x423ae0
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1f
test edx, edx
jns 0x423b07
mov eax, 0xffffffff
jmp 0x423b10
xor ebx, ebx
jmp 0x423db9
add eax, ecx
lea eax, [eax*2 + 0x3e]
push eax
call fcn.00408130
add esp, 4
movzx ecx, word [ebp]
mov edx, eax
test cx, cx
je 0x423b42
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 0x423b30
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov word [edx], 0x5c
mov dword [esp], 0x269f26ae
mov dword [esp + 4], 0x26b626bb
mov dword [esp + 8], 0x26bb26b7
mov dword [esp + 0xc], 0x264d26ab
mov dword [esp + 0x10], 0x264f26bb
mov dword [esp + 0x14], 0x26a126b9
mov dword [esp + 0x18], 0x26b12697
mov dword [esp + 0x1c], 0x26a426a4
mov dword [esp + 0x20], 0x26a6265a
mov dword [esp + 0x24], 0x26b926a0
mov dword [esp + 0x28], 0x26ae268a
mov dword [esp + 0x2c], 0x26ac265e
mov dword [esp + 0x30], 0x26a42689
mov dword [esp + 0x34], 0x26a026a1
mov dword [esp + 0x38], 0x26cf26b2
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + ecx*2]
lea edi, [ecx - 0x7f136431]
mov ebp, edi
xor ebp, 0x30477b0d
and edi, 0xa880f2
add edi, edi
sub edi, ebp
mov ebp, edi
and ebp, edx
mov esi, ebp
and esi, 2
mov ebx, ebp
or ebx, 0xfffd
inc ebx
mov eax, ebp
and eax, 0x3ffd
imul eax, ebx
or ebp, 2
imul ebp, esi
sub eax, ebp
add edi, edx
add eax, edi
add eax, 0xfffff9f0
mov word [esp + ecx*2], ax
mov eax, ecx
and eax, 0x15
or ecx, 0x794754f5
add ecx, eax
add ecx, 0x86b8ab0c
cmp ecx, 0x1e
jb 0x423bd0
mov esi, dword [esp + 0x3c]
add esi, 2
mov eax, dword [esp + 0x64]
movzx ecx, word [eax]
test cx, cx
je 0x423c61
add eax, 2
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x423c50
mov word [esi], 0
movzx ecx, word [esp]
test cx, cx
je 0x423c91
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 0x423c80
mov word [esi], 0
mov dword [esp + 0x44], 0x6896688d
mov dword [esp + 0x48], 0x68d768ec
mov dword [esp + 0x4c], 0x684c68d7
xor eax, eax
movzx ecx, word [esp + eax*2 + 0x44]
lea edx, [eax - 0x7f149ed1]
xor edx, ecx
mov esi, edx
mov ecx, edx
xor ecx, 0xf8a4f687
add ecx, edx
and edx, 0x80a0f687
and esi, 0x978
add ecx, edx
mov edx, ecx
sub edx, esi
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov word [esp + eax*2 + 0x44], cx
inc eax
cmp eax, 6
jne 0x423cb0
mov dword [esp], 0x1e2d1e36
mov dword [esp + 4], 0x1fd21fd4
mov dword [esp + 8], 0x1e1f1fdc
mov dword [esp + 0xc], 0x1fdb1e36
mov dword [esp + 0x10], 0x1e201fdd
mov dword [esp + 0x14], 0x1fd11fda
mov dword [esp + 0x18], 0x1e581fd4
mov dword [esp + 0x1c], 0x1e1b1e04
mov dword [esp + 0x20], 0x1fe01fe2
mov word [esp + 0x24], 0x1e7d
mov eax, 0x292bd8d3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [esp + eax*2 - 0x5257b1a6]
xor ecx, eax
add ecx, 0xb6a13967
mov edx, ecx
and edx, 0xdd3
xor ecx, 0x8dd3
lea ecx, [ecx + edx*2]
add ecx, 0x722e
mov word [esp + eax*2 - 0x5257b1a6], cx
inc eax
cmp eax, 0x292bd8e6
jne 0x423d50
lea eax, [esp + 0x44]
mov ecx, esp
push 0
push 4
push 0xc00000
push eax
mov esi, dword [esp + 0x50]
push esi
push ecx
mov eax, dword [esp + 0x88]
push dword [eax]
call fcn.0041fa70
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408140
add esp, 4
mov eax, ebx
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0x10