Function at 0x4168a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x188
mov esi, esp
push eax
sub esp, 8
mov dword [esi + 0x138], esp
sub esp, 0xc
mov ebx, esp
sub esp, 0xc
mov dword [esi + 0xc], esp
mov dword [esi + 0x18], 0x3e8012f
mov dword [esi + 0x1c], 0x7e905f7
mov dword [esi + 0x20], 0xb0a09e6
mov word [esi + 0x24], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x18]
mov edx, eax
and edx, 0xe
xor edx, 0xfdfffffe
mov edi, eax
and edi, 1
add edx, edi
add edx, 0x672ebb00
mov edi, ecx
xor edi, 0xe
xor ecx, 0x41
or edi, edx
not edx
or edx, ecx
and edx, edi
add dl, 0xc0
mov byte [esi + eax + 0x18], dl
inc eax
cmp eax, 0xe
jne 0x4168f0
mov dword [esi + 0x34], 0x77ea09a0
mov dword [esi + 0x38], 0x73e275e8
mov dword [esi + 0x3c], 0x7f2d7136
mov dword [esi + 0x40], 0x7bee7d2f
mov dword [esi + 0x44], 0x67c979eb
mov dword [esi + 0x48], 0x63f665c5
mov dword [esi + 0x4c], 0x6ffd61c8
mov dword [esi + 0x50], 0x6bf66df3
mov dword [esi + 0x54], 0x5756692e
mov byte [esi + 0x58], 0
mov eax, 0xab03e63e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x54fc19f6]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xca
mov byte [esi + eax + 0x54fc19f6], cl
inc eax
cmp eax, 0xab03e663
jne 0x416980
movzx ecx, word [esi + 0x34]
lea eax, [esi + 0x14e]
test cx, cx
je 0x4169d1
lea edx, [esi + 0x36]
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 0x4169c0
mov word [eax], 0
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
test cx, cx
je 0x416a01
add edx, 2
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 0x4169f0
mov word [eax], 0
movzx ecx, word [esi + 0x18]
test cx, cx
mov dword [esi + 0x13c], ebx
je 0x416a31
lea edx, [esi + 0x1a]
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 0x416a20
mov word [eax], 0
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov dword [esi + 0x34], 0xafacacca
mov byte [esi + 0x38], 0x2c
mov dword [esi + 0x39], 0
mov byte [esi + 0x3d], 0
mov eax, 0x4c
mov ecx, 3
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 4
mov edx, eax
and edx, 0x5b
or edx, edi
xor dl, byte [esi + eax - 0x18]
xor dl, 4
add dl, 0x84
mov byte [esi + eax - 0x18], dl
inc eax
dec ecx
cmp eax, 0x56
jne 0x416a60
movzx eax, byte [esi + 0x34]
test al, al
je 0x416a9b
lea ecx, [esi + 0x35]
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x416a90
mov dword [esi + 4], ebx
mov byte [ebx], 0
lea eax, [esi + 0x148]
lea ecx, [esi + 0x28]
lea edx, [esi + 0x14e]
push eax
push ecx
push edx
call fcn.0040b4f0
add esp, 0xc
movzx eax, al
mov eax, dword [eax*4 + 0x443c3c]
mov ecx, dword [0x443c44]
mov edx, ecx
and edx, 0xfb65acb7
add edx, edx
sub edx, ecx
add eax, edx
add eax, 0x849a5349
jmp eax
scasb al, byte es:[edi]
sub eax, ecx
jmp eax
loopne 0x42d4e3
cli
add edx, 8
mov eax, edx
mov ebx, dword [esi + 0x74]
mov edi, ebx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
add eax, 4
add edx, 4
mov ebx, edx
mov edi, eax
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
xor ecx, ecx
cmp ecx, 0
je 0x42d5a1
add ecx, 0xffffffff
mov edi, edx
add edi, 1
mov dl, byte [edx]
mov ebx, eax
add ebx, 1
mov byte [eax], dl
mov eax, ebx
mov edx, edi
jmp 0x42d585
mov eax, dword [esi + 0x74]
mov al, byte [eax + 1]
mov ecx, dword [esi + 0xa0]
mov byte [ecx], al
mov ecx, dword [esi + 0x120]
mov eax, ecx
or eax, 0x1d3e2194
and ecx, 0x1d3e2194
sub eax, ecx
mov ecx, dword [esi + 0x258]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x445f38]
mov edx, ecx
and edx, 0x14b7935b
add edx, edx
sub edx, ecx
lea eax, [edx + eax - 0x14b7935b]
jmp eax