Function at 0x41ed30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
mov ebx, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41ed50
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ed70
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
jns 0x41ed9e
mov eax, 0xffffffff
jmp 0x41eda5
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00408580
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 8], 0x69a66bd8
mov dword [esp + 0xc], 0x6dcb6ff9
mov dword [esp + 0x10], 0x51fe53cb
mov dword [esp + 0x14], 0x559d57b0
mov dword [esp + 0x18], 0x59ce5bcc
mov dword [esp + 0x1c], 0x5dcc5ff3
mov dword [esp + 0x20], 0x41ed43c9
mov dword [esp + 0x24], 0x45d447d1
mov dword [esp + 0x28], 0x49ff4ba4
mov dword [esp + 0x2c], 0x4dda4fe3
mov dword [esp + 0x30], 0x319d33d8
mov dword [esp + 0x34], 0x359f37a2
mov dword [esp + 0x38], 0x39863ba1
mov word [esp + 0x3c], 0x3f38
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
xor eax, eax
movzx ecx, byte [esp + eax + 8]
mov edx, 0x48ba3ce8
sub edx, eax
or edx, ecx
mov esi, 0xe8
sub esi, eax
and esi, ecx
xor esi, edx
lea ecx, [esi + esi]
not ecx
add ecx, esi
add cl, 0x8d
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x3b
jb 0x41ee30
movzx ecx, word [ebx]
mov eax, dword [esp + 0x44]
test cx, cx
je 0x41ee91
add ebx, 2
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41ee80
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41eec1
lea edx, [esp + 0xa]
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 0x41eeb0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41eef1
add edi, 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 [edi]
add edi, 2
test cx, cx
jne 0x41eee0
mov word [eax], 0
mov esi, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ef00
mov ebp, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41ef20
mov edx, dword [esp + 0x70]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41ef40
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41ef64
mov eax, 0xffffffff
jmp 0x41ef6d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.00408580
add esp, 4
mov ebx, eax
movzx eax, word [esi]
mov dword [esp + 4], ebx
test ax, ax
je 0x41efa1
add esi, 2
mov ebx, dword [esp + 4]
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41ef90
mov word [ebx], 0x2f
mov dword [esp + 8], 0x31f93f0d
mov dword [esp + 0xc], 0x35c633b8
mov dword [esp + 0x10], 0xc9c837d3
mov dword [esp + 0x14], 0xcd31cb3d
mov dword [esp + 0x18], 0xc130cf3d
mov dword [esp + 0x1c], 0xc5f3c335
mov word [esp + 0x20], 0xc7c4
mov dword [esp + 0x22], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ecx, [eax + eax]
mov esi, ecx
and esi, 0x2a
mov edx, eax
xor edx, 0xf5
add edx, esi
xor dl, byte [esp + eax + 8]
add dl, 0x37
mov byte [esp + eax + 8], dl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0x1e
jb 0x41eff0
add ebx, 2
movzx eax, word [ebp]
test ax, ax
je 0x41f044
add ebp, 2
mov esi, dword [esp + 0x70]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41f030
jmp 0x41f048
mov esi, dword [esp + 0x70]
mov word [ebx], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x41f071
lea ecx, [esp + 0xa]
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f060
mov word [ebx], 0
movzx eax, word [edi]
test ax, ax
je 0x41f0a1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41f090
mov word [ebx], 0
mov dword [esp + 8], 0xe9eaeb8a
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x57
xor cl, byte [esp + eax + 8]
add cl, 0x4d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 7
jne 0x41f0c0
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
mov edi, dword [esp + 0x54]
push edi
push dword [esp + 0x18]
push dword [esp + 0x80]
call fcn.00422c90
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x447d80]