Function at 0x4241c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
cmp byte [esp + 0x64], 0
je 0x424225
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x60]
mov ebp, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x4241e0
mov ecx, eax
and ecx, 2
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x424200
sar eax, 1
xor eax, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x1e
test eax, eax
jns 0x42422c
mov eax, 0xffffffff
jmp 0x424235
xor ebx, ebx
jmp 0x4244c7
add ecx, edx
lea eax, [ecx*2 + 0x3c]
push eax
call fcn.00407fc0
add esp, 4
movzx ecx, word [ebp]
mov esi, eax
test cx, cx
je 0x424262
add ebp, 2
mov esi, eax
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x424250
mov word [esp], 0x235e
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx]
mov ebp, 0x4d
sub ebp, ecx
mov edx, ebp
or edx, edi
and ebp, edi
not edx
or edx, ebp
add dl, 0x70
mov byte [esp + ecx], dl
lea ecx, [ecx + ecx*2]
xor ecx, 1
cmp ecx, 2
jb 0x424270
movzx ecx, word [esp]
mov word [esi], cx
mov dword [esp], 0xc38ec19c
mov dword [esp + 4], 0xc7a5c5ab
mov dword [esp + 8], 0xcba6c9a9
mov dword [esp + 0xc], 0xcfbacd9f
mov dword [esp + 0x10], 0xd3a6d1b1
mov dword [esp + 0x14], 0xd78ad5b1
mov dword [esp + 0x18], 0xdbb4d991
mov dword [esp + 0x1c], 0xdfbbddb8
mov dword [esp + 0x20], 0xe387e198
mov dword [esp + 0x24], 0xe7bae580
mov dword [esp + 0x28], 0xeb83e9a4
mov dword [esp + 0x2c], 0xef8bed9a
mov dword [esp + 0x30], 0xf39df1b3
mov dword [esp + 0x34], 0xf79bf599
mov dword [esp + 0x38], 0xfbfaf9a4
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc0
xor byte [esp + ecx], dl
inc ecx
cmp ecx, 0x3c
jne 0x424320
add esi, 2
movzx ecx, word [ebx]
test cx, cx
je 0x424351
add ebx, 2
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x424340
mov word [esi], 0
movzx ecx, word [esp]
test cx, cx
mov dword [esp + 0x3c], eax
je 0x424381
lea edx, [esp + 2]
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 0x424370
mov word [esi], 0
mov dword [esp + 0x40], 0xc29fc095
mov dword [esp + 0x44], 0xc658c466
mov dword [esp + 0x48], 0x3a39385b
mov eax, 0x731f1d77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x731f1d37]
lea ecx, [eax - 0x398f8f00]
mov edi, eax
and edi, edx
or ecx, edx
xor ecx, edi
mov edx, ecx
and edx, 0x47
xor ecx, 0x33838c47
lea edx, [ecx + edx*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax - 0x731f1d37], dl
inc eax
cmp eax, 0x731f1d83
jne 0x4243b0
mov dword [esp], 0x6c0a6a34
mov dword [esp + 4], 0x60136e14
mov dword [esp + 8], 0x645c6212
mov dword [esp + 0xc], 0x781e6632
mov dword [esp + 0x10], 0x7c1f7a07
mov dword [esp + 0x14], 0x70087e02
mov dword [esp + 0x18], 0x74537202
mov dword [esp + 0x1c], 0x88167628
mov dword [esp + 0x20], 0x8cf78af0
mov word [esp + 0x24], 0x8e8d
xor eax, eax
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax]
lea ecx, [eax + eax]
mov edi, ecx
and edi, 0x42
mov edx, eax
xor edx, 0xa89d1d61
add edx, edi
mov ebp, edx
and ebp, ebx
mov esi, ebp
or esi, 0xfffffffd
inc esi
mov edi, ebp
and edi, 0xfffffffd
imul edi, esi
mov esi, ebp
and esi, 2
or ebp, 2
imul ebp, esi
sub edi, ebp
add edx, ebx
add edx, edi
mov ebx, edx
and ebx, 0x77
add ebx, ebx
xor edx, 8
sub ebx, edx
mov byte [esp + eax], bl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0x26
jb 0x424440
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.004201a0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00407fd0
add esp, 4
mov eax, ebx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10