Function at 0x4244ff
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
push eax
sub esp, 0x40
mov ebx, esp
sub esp, 0x18
mov dword [ebp - 0x18], esp
push eax
mov edx, esp
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x424520
mov dword [ebp - 0x10], edx
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x424540
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x424560
mov eax, 0xffffffff
jmp 0x424569
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040c8d0
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x58], 0x43d741fe
mov dword [ebp - 0x54], 0x47e345d7
mov dword [ebp - 0x50], 0x4b0949da
mov dword [ebp - 0x4c], 0x4fe04de3
mov dword [ebp - 0x48], 0xb317b124
mov dword [ebp - 0x44], 0xb722b52c
mov dword [ebp - 0x40], 0xbb1eb9f1
mov dword [ebp - 0x3c], 0xbfeabde1
mov dword [ebp - 0x38], 0xa3fba1f2
mov dword [ebp - 0x34], 0xa7ffa5f0
mov dword [ebp - 0x30], 0xabfda9fe
mov dword [ebp - 0x2c], 0xaff7adfe
mov dword [ebp - 0x28], 0x932e91c5
mov dword [ebp - 0x24], 0x9732953d
mov dword [ebp - 0x20], 0x9b9a993a
mov word [ebp - 0x1c], 0
mov byte [ebp - 0x1a], 0
lea eax, [ebp - 0x58]
xor edi, edi
xor edx, edx
nop
mov ecx, edi
and ecx, 0x21de4c20
mov esi, edx
xor esi, 0x6f10d9ef
sub esi, ecx
movzx ecx, byte [eax]
inc esi
xor esi, ecx
mov ecx, 0xb0
sub ecx, esi
not esi
and esi, 1
and ecx, 0xfe
or ecx, esi
not ecx
lea ecx, [ecx + esi*2]
mov byte [eax], cl
inc eax
dec edx
add edi, 0xfffffffe
cmp edx, 0xffffffc1
jne 0x4245f0
mov dword [ebx], 0xe16be740
mov dword [ebx + 4], 0xdd73e36c
mov dword [ebx + 8], 0xd97ddf4e
mov dword [ebx + 0xc], 0xd545db41
mov dword [ebx + 0x10], 0xd14ad770
mov dword [ebx + 0x14], 0xcd4cd34f
mov dword [ebx + 0x18], 0xc941cf6f
mov dword [ebx + 0x1c], 0xc546cb5c
mov dword [ebx + 0x20], 0xc151c760
mov dword [ebx + 0x24], 0x3d48c351
mov dword [ebx + 0x28], 0x39a13f6b
mov dword [ebx + 0x2c], 0x35b63bb0
mov dword [ebx + 0x30], 0x31a037ab
mov dword [ebx + 0x34], 0x2da933bd
mov dword [ebx + 0x38], 0x29b82fbd
mov dword [ebx + 0x3c], 0x257f2b7d
mov dword [ebx + 0x40], 0x21262771
mov esi, 0x60cd9ca6
mov ecx, ebx
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
mov eax, edx
xor eax, 0xa3a29d12
mov edi, edx
or edi, 0xed
and edi, eax
and edx, 0x12
xor edx, 0xa3a29d12
or edx, edi
mov edi, esi
and edi, 0x20809c12
mov eax, esi
and eax, 0x404d00ed
or eax, 0xa28c10
xor eax, edi
xor eax, 0x5cffeefd
mov edi, edx
and edi, eax
add eax, edx
add edi, edi
sub eax, edi
mov edi, eax
mov edx, eax
xor edx, 0xe4040f42
add edx, eax
and eax, 0xe4040f42
and edi, 0x1bfbf0bd
sub edx, edi
mov edi, edx
and edi, eax
xor edx, eax
lea eax, [edx + edi*2]
inc al
mov byte [ecx], al
inc ecx
dec esi
cmp esi, 0x60cd9c62
jne 0x4246b0
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
movzx edx, word [ecx]
mov esi, dword [ebp - 0x14]
mov eax, esi
test dx, dx
je 0x424751
add ecx, 2
mov eax, esi
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424740
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x424783
add ebx, 2
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x424770
jmp 0x424786
mov edx, dword [ebp + 0xc]
mov word [eax], 0
movzx ecx, word [edx]
test cx, cx
je 0x4247b1
add edx, 2
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 0x4247a0
mov word [eax], 0
movzx ecx, word [ebp - 0x58]
test cx, cx
je 0x4247e1
lea edx, [ebp - 0x56]
nop
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 0x4247d0
mov word [eax], 0
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
mov eax, 0xfffffffe
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4247f0
mov edx, dword [edi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x424810
sar ecx, 1
mov esi, eax
sar esi, 1
mov edi, dword [edi + 8]
xor esi, 9
mov edx, 0xfffffffe
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x424830
and eax, 0x12
add eax, esi
sar edx, 1
add eax, ecx
lea ecx, [edx + eax]
add ecx, 2
test ecx, ecx
jns 0x424855
mov eax, 0xffffffff
jmp 0x42485e
add eax, edx
lea eax, [eax*2 + 4]
push eax
call fcn.0040c8d0
add esp, 4
mov edi, eax
mov edx, dword [ebp - 0x18]
mov dword [edx], 0xcf6fc963
mov dword [edx + 4], 0xc35ecd50
mov dword [edx + 8], 0xc752c165
mov dword [edx + 0xc], 0xbb69c553
mov word [edx + 0x10], 0xb9b8
mov dword [edx + 0x12], 0
mov word [edx + 0x16], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x32
xor cl, byte [edx + eax]
add cl, 6
mov byte [edx + eax], cl
inc eax
cmp eax, 0x18
jne 0x4248a0
movzx ecx, word [edx]
mov eax, edi
test cx, cx
je 0x4248e1
add edx, 2
mov eax, edi
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 0x4248d0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x424911
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x424900
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424941
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424930
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x424971
add ecx, 2
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424960
mov word [eax], 0
mov edx, dword [ebp - 0x10]
mov dword [edx], 0x8382816a
xor eax, eax
mov ecx, 0x3f3841f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edx + eax]
mov edx, ecx
or edx, esi
mov ebx, eax
xor ebx, 0x1f
and ebx, esi
not edx
or edx, ebx
add edx, 0xbe0bae4
mov esi, edx
xor esi, 0x45
and edx, 0x3a
add edx, edx
sub edx, esi
inc dl
mov esi, dword [ebp - 0x10]
mov byte [esi + eax], dl
mov edx, dword [ebp - 0x10]
inc eax
dec ecx
cmp eax, 4
jne 0x424990
push 0
push 1
push 0
push edx
mov esi, dword [ebp - 0x14]
push esi
push edi
push dword [ebp + 8]
call fcn.00424c70
add esp, 0x1c
mov ebx, eax
jmp dword [0x44bc50]