Function at 0x401000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov ecx, dword [ebp + 8]
mov eax, 0x20b6
xor ax, word [ecx + 0x20]
mov ecx, 0x3f01
xor dword [0x408809], 0x4087fd
add ax, cx
movzx eax, ax
and ecx, 0xc04
mov dword [ebp - 0x18], eax
mov byte [ebp - 1], 0xed
xor ecx, dword [0x40884d]
lea eax, [ebp - 1]
sub dword [0x408809], ecx
mov dword [ebp - 0x1c], eax
adc dword [0x40883d], edi
mov al, byte [ebp - 1]
sub ecx, dword [0x4087c1]
mov ecx, dword [ebp - 0x1c]
xor dword [0x408809], 0x1a6b
xor al, 0x3f
add al, 0x2f
and dword [0x408781], 0x5965
mov byte [ecx], al
mov dword [ebp - 0xc], 0xc6f8e435
inc ecx
mov dword [ebp - 0x14], 0xc6f8e434
movzx ecx, word [0x4087fd]
or dword [0x40873d], ecx
mov ecx, dword [ebp - 0xc]
push esi
mov eax, 0x2a823c2b
xor dword [0x40873d], edi
xor ecx, eax
mov esi, 0x138527e2
sbb dword [0x4087c5], 0x48d8
add ecx, esi
push ebx
dec dword [0x4087c1]
mov dword [ebp - 0x10], ecx
not ecx
mov dword [ebp - 8], 0xc6f8e04b
push edi
sub dword [0x408859], 0x4d67
mov ecx, dword [ebp - 0xc]
or dword [0x4087d5], 0x4087c9
xor ecx, eax
mov dword [0x4087fd], 0x16ca
add ecx, esi
mov dword [0x408805], 0x240b
cmp dword [ebp - 8], 0xc6f8e664
mov dword [0x408779], 0x5655
mov dword [ebp - 0x1c], ecx
jne 0x401149
cmp ecx, 0x40
mov dword [0x4087bd], 0x217e
jae 0x401149
mov dl, byte [ebp - 1]
mov byte [ebp + ecx - 0x60], dl
mov dword [0x4087cd], 0x6744
cmp ecx, 0x3f
mov dword [0x408839], 0x213c
jne 0x401277
jmp 0x4011a4
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
sub dword [0x408845], 0xde9
xor edi, eax
sub dword [0x4087c9], 0x408739
xor edx, eax
xor dword [0x408749], 0x6c6c
sub edi, edx
sub edi, esi
xor edi, eax
mov dword [0x408815], 0x755
mov dword [ebp - 8], edi
mov dword [0x408861], 0x76b7
cmp edi, 0xc6f8e38a
mov dword [0x4087bd], 0x7ffb
jne 0x401291
mov edx, dword [ebp - 0xc]
inc edi
mov edi, dword [ebp - 0x18]
xor edx, eax
adc dword [0x408751], 0x63ee
add edx, esi
mov dword [0x40877d], 0x30c9
cmp edx, edi
je 0x401255
adc edi, edi
mov edi, dword [ebp + 8]
mov ecx, 0x20b6
sub dword [0x408755], 0x3302
xor cx, word [edi + edx*4 + 2]
and edi, dword [0x4087c5]
mov edi, 0x3f01
add cx, di
sub dword [0x408845], 0x4087bd
movzx ecx, cx
mov dword [ebp - 0x20], ecx
add ecx, 0x660b
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx + edx*4]
add dword [0x408859], 0x408809
xor ecx, 0x20b6
adc dword [0x4087b9], 0x4087c1
add ecx, edi
mov edi, dword [ebp - 0x20]
mov byte [ebp + edi - 0x60], cl
mov ecx, dword [ebp - 0x18]
mov dword [0x408785], 0x75b7
inc edx
cmp edx, ecx
mov dword [0x40885d], 0x1fa0
jne 0x4011cb
mov ecx, dword [ebp - 0x1c]
sbb edx, 0x283d
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp + 0x10]
xor edx, eax
dec dword [0x408855]
add edx, esi
mov dword [0x408741], 0x28e0
mov dword [edi], edx
mov dword [0x40874d], 0x603d
inc ecx
mov dword [0x4087b9], 0x60e7
jmp 0x4010e9
mov dword [0x4087bd], 0x713b
cmp dword [ebp - 8], 0xc6f8e478
mov dword [0x408811], 0x68cc
jne 0x4010c4
mov dword [0x408789], edi
pop edi
mov dword [ebp + 8], 0xc6f8d435
pop ebx
jmp 0x401339
mov ecx, dword [ebp - 0x10]
mov cl, byte [ebp + ecx - 0x60]
mov dl, byte [ebp - 1]
cmp cl, dl
je 0x401324
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
xor ecx, eax
xor edx, eax
sub ecx, edx
sub ecx, esi
xor ecx, eax
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x10]
mov cl, byte [ebp + ecx - 0x60]
mov dl, byte [ebp - 1]
cmp cl, dl
je 0x401324
mov ecx, dword [ebp - 0x10]
mov cl, byte [ebp + ecx - 0x60]
mov edx, dword [ebp + 0xc]
cmp cl, byte [edx]
jne 0x401352
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
xor ecx, eax
add ecx, esi
cmp edx, ecx
je 0x401346
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
xor ecx, eax
lea ecx, [ecx + edx + 0x138527e2]
mov dword [ebp - 0x10], ecx
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
xor ecx, eax
add ecx, esi
jne 0x4012c6
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov eax, dword [ebp + 0x10]
add ecx, esi
mov dword [eax], ecx
pop esi
leave
ret 0xc