Function at 0x418c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x198
mov dword [esp + 0x10], 0xb71cb5db
mov dword [esp + 0x14], 0xbb15b90b
mov dword [esp + 0x18], 0xbfbebd12
mov eax, 0x85fd614
mov ecx, 0x37a029eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x85fd604]
lea edi, [ebx + ebx]
not edi
add edi, ebx
and edi, 0xf7f5ab5c
mov edx, ebx
xor edx, 0xf7f5ab5c
or ebx, 0xa3
and ebx, edx
or ebx, edi
mov edi, ecx
and edi, 0x37a0295c
mov edx, eax
and edx, 0x80a5423
or edx, edi
xor edx, ebx
mov esi, edx
not esi
or esi, 0xbd014f5f
mov ebx, edx
and ebx, 0x42feb0a0
mov edi, edx
xor edi, 0xbd014f5f
add edi, esi
sub edi, ebx
lea esi, [edi + edx*2]
lea edi, [edi + edx*2]
inc edi
mov edx, edi
not edx
or edx, 1
mov ebx, edi
xor edi, 1
add edi, edx
and ebx, 0xfe
sub edi, ebx
lea edx, [edi + esi*2]
add edx, 2
inc dl
mov byte [esp + eax - 0x85fd604], dl
inc eax
dec ecx
cmp eax, 0x85fd620
jne 0x418c40
mov dword [esp + 0x38], 0x56c154cb
mov dword [esp + 0x3c], 0x4ad948c3
mov dword [esp + 0x40], 0x4e924c81
mov dword [esp + 0x44], 0x42dd4090
mov dword [esp + 0x48], 0x46a644dc
mov dword [esp + 0x4c], 0x7ae578a6
mov dword [esp + 0x50], 0x7ee27ce3
mov dword [esp + 0x54], 0x72e570ec
mov dword [esp + 0x58], 0x767574b9
xor eax, eax
xor ecx, ecx
nop
nop
movzx edi, byte [esp + ecx + 0x38]
mov esi, eax
and esi, 0x16
mov edx, ecx
xor edx, 0xc10da70b
add edx, esi
mov esi, edi
xor esi, 0x5ad37389
mov ebx, edx
xor ebx, 0x89
or ebx, esi
xor edi, 0x810c8476
xor edx, 0x76
or edx, edi
and edx, ebx
mov esi, edx
and esi, 0xf792c7a7
xor edx, 0xf792c7a7
lea esi, [edx + esi*2]
mov edx, esi
xor edx, 0xfe
or esi, 1
and edx, esi
add edx, esi
mov byte [esp + ecx + 0x38], dl
inc ecx
add eax, 2
cmp ecx, 0x24
jne 0x418d20
movzx ecx, word [esp + 0x38]
lea eax, [esp + 0x154]
test cx, cx
je 0x418db3
lea edx, [esp + 0x3a]
mov ebx, dword [ebp + 0x10]
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 0x418da0
jmp 0x418db6
mov ebx, dword [ebp + 0x10]
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x418de1
lea edx, [ebx + 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 0x418dd0
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x418e11
lea edx, [esp + 0x12]
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 0x418e00
mov word [eax], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov dword [esp + 0x38], 0x999a9e70
mov byte [esp + 0x3c], 0x7e
mov eax, 0x9e522d2a
mov ecx, 0xd5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x61add30e]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 0x2f
xor edx, 0xd6e96af
lea esi, [edx + esi*2]
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + eax + 0x61add30e], dl
inc eax
dec ecx
cmp eax, 0x9e522d2f
jne 0x418e40
movzx eax, byte [esp + 0x38]
test al, al
je 0x418e9d
lea ecx, [esp + 0x39]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x418e90
jmp 0x418e9f
mov edx, edi
mov edi, edx
mov byte [edx], 0
lea eax, [esp + 0x144]
lea ecx, [esp + 0x148]
lea edx, [esp + 0x2c]
lea esi, [esp + 0x154]
push eax
push ecx
push edx
push esi
call fcn.0040adb0
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x43d880]
mov ecx, 0xf925ee35
xor ecx, dword [0x43d888]
add eax, ecx
inc eax
jmp eax