Function at 0x418520
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov esi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x418540
mov dword [esp + 4], esi
mov edi, dword [ecx + 4]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
cmp word [edi + esi + 2], 0
lea esi, [esi + 2]
jne 0x418560
mov ecx, edx
sar ecx, 1
sar esi, 1
lea eax, [ecx + esi]
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], esi
mov dword [esp], edi
jns 0x418593
mov eax, 0xffffffff
jmp 0x41859d
lea eax, [ecx + esi]
lea eax, [eax*2 + 0x36]
push eax
call fcn.004081b0
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 8], 0x4fb249a4
mov dword [esp + 0xc], 0x43a54ddf
mov dword [esp + 0x10], 0x47da41a1
mov dword [esp + 0x14], 0x7bbf4564
mov dword [esp + 0x18], 0x7fea79f0
mov dword [esp + 0x1c], 0x73e07d99
mov dword [esp + 0x20], 0x77ef71e7
mov dword [esp + 0x24], 0x6bf875e7
mov dword [esp + 0x28], 0x6f996948
mov dword [esp + 0x2c], 0x63f66d89
mov dword [esp + 0x30], 0x67ff61f4
mov dword [esp + 0x34], 0x1b8165f6
mov dword [esp + 0x38], 0x1ff2198f
mov dword [esp + 0x3c], 0x1d1c
mov esi, 0xbbad2a5f
mov ecx, 0x775a54be
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x4452d5a9]
mov ebp, ecx
and ebp, 0x31101124
mov eax, esi
xor eax, 0x1c984c92
lea ebx, [eax + ebp]
add eax, ebp
add eax, 0x4452d5a1
mov edi, 0xbbad2a5e
sub edi, ebx
and edi, 0xbe206210
mov ebp, eax
and ebp, 0x41d01def
or ebp, edi
xor ebp, edx
xor ebp, 0x41d79def
and ebp, eax
mov eax, ebp
and eax, 2
mov edi, ebp
or ebp, 2
imul ebp, eax
xor eax, 2
and edi, 0xfff7fffd
imul edi, eax
sub ebp, ebx
lea ebx, [edi + ebp]
add ebx, 0xbbad2a5f
mov eax, edx
not eax
and eax, ebx
not ebx
and ebx, edx
sub ebx, eax
mov eax, ebx
not eax
and eax, 0xdb
and ebx, 0x24
sub ebx, eax
inc bl
mov byte [esp + esi + 0x4452d5a9], bl
inc esi
add ecx, 2
cmp esi, 0xbbad2a97
jne 0x418630
mov esi, dword [esp + 4]
movzx ecx, word [esi]
mov edx, dword [esp + 0x40]
mov eax, edx
test cx, cx
je 0x4186f1
add esi, 2
mov eax, edx
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4186e0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
mov esi, dword [esp]
je 0x418721
lea edx, [esp + 0xa]
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 0x418710
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x418751
add esi, 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 [esi]
add esi, 2
test cx, cx
jne 0x418740
mov word [eax], 0
mov eax, dword [esp + 0x68]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x418770
mov ecx, dword [esp + 0x68]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418790
mov edx, dword [esp + 0x6c]
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 0x4187b0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x4187d4
mov eax, 0xffffffff
jmp 0x4187dd
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004081b0
add esp, 4
mov esi, eax
movzx eax, word [ebx]
mov dword [esp], esi
test ax, ax
je 0x418811
add ebx, 2
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x418800
mov word [esi], 0x2f
mov dword [esp + 8], 0xf3bff187
mov dword [esp + 0xc], 0xff42fd44
mov dword [esp + 0x10], 0xfb4cf955
mov dword [esp + 0x14], 0xc76fc577
mov dword [esp + 0x18], 0xc374c177
mov dword [esp + 0x1c], 0xcfb9cd7f
mov word [esp + 0x20], 0xc9c8
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
mov eax, 0x65932154
mov ecx, 0xab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x6593214c]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add edx, 0x600b1ac3
mov ebx, edx
xor ebx, 0x68
and edx, 0x17
add edx, edx
sub edx, ebx
inc dl
mov byte [esp + eax - 0x6593214c], dl
inc eax
dec ecx
cmp eax, 0x65932173
jne 0x418870
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x4188d4
add ebp, 2
mov ebx, dword [esp + 0x6c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x4188c0
jmp 0x4188d8
mov ebx, dword [esp + 0x6c]
mov word [esi], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x418901
lea ecx, [esp + 0xa]
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4188f0
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x418931
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x418920
mov word [esi], 0
mov dword [esp + 8], 0xf10e0fe6
mov dword [esp + 0xc], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x7d
xor cl, byte [esp + eax + 8]
add cl, 0x8f
mov byte [esp + eax + 8], cl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 8
jb 0x418950
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
mov edi, dword [esp + 0x50]
push edi
push dword [esp + 0x14]
push dword [esp + 0x7c]
call fcn.0041c3b0
add esp, 0x1c
mov byte [esp + 4], al
jmp dword [0x442fc0]