Function at 0x40eac0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x440080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x44155c]
mov eax, dword [0x441558]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x1a], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x19], al
mov dword [ebp - 0x20], 0x3fd97b9d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
sub eax, 0x9fbf8035
je 0x40edc7
jmp 0x40eb2d
mov eax, dword [ebp - 0x2c]
sub eax, 0xc96982ef
je 0x40ecbc
jmp 0x40eb40
mov eax, dword [ebp - 0x2c]
sub eax, 0xd217ae21
je 0x40ec8e
jmp 0x40eb53
mov eax, dword [ebp - 0x2c]
sub eax, 0xe7337c12
je 0x40ede5
jmp 0x40eb66
mov eax, dword [ebp - 0x2c]
sub eax, 0xed9ebbac
je 0x40ed27
jmp 0x40eb79
mov eax, dword [ebp - 0x2c]
sub eax, 0x1a5a0cb
je 0x40ec15
jmp 0x40eb8c
mov eax, dword [ebp - 0x2c]
sub eax, 0x3fd97b9d
je 0x40ebca
jmp 0x40eb9f
mov eax, dword [ebp - 0x2c]
sub eax, 0x49379de8
je 0x40edd9
jmp 0x40ebb2
mov eax, dword [ebp - 0x2c]
sub eax, 0x57e13331
je 0x40ec9a
jmp 0x40ebc5
jmp 0x40ee21
mov bl, byte [ebp - 0x1a]
mov dh, byte [ebp - 0x19]
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x49379de8
mov ecx, 0x1a5a0cb
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40ee21
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
mov ecx, dword [0x44155c]
mov eax, dword [0x441558]
mov edx, ecx
add edx, 0x619b0e50
sub edx, 1
sub edx, 0x619b0e50
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x49379de8
mov ecx, 0xd217ae21
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40ee21
mov dword [ebp - 0x20], 0x57e13331
jmp 0x40ee21
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push eax
mov eax, esp
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
mov dword [ebp - 0x20], 0xc96982ef
jmp 0x40ee21
mov ecx, dword [0x44155c]
mov eax, dword [0x441558]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xe7337c12
mov ecx, 0xed9ebbac
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40ee21
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
mov ecx, dword [edx]
mov edi, dword [esi]
not byte [edi]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
add byte [edi], 0x64
sub byte [edi], 0x88
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
imul byte [edi]
inc edi
loop 0x40ed3b
mov ecx, dword [0x44155c]
mov eax, dword [0x441558]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xe7337c12
mov ecx, 0x9fbf8035
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40ee21
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00428c20
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x20], 0x1a5a0cb
jmp 0x40ee21
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
mov ecx, dword [edx]
mov edi, dword [esi]
not byte [edi]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
add byte [edi], 0x64
sub byte [edi], 0x88
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
imul byte [edi]
inc edi
loop 0x40edf9
mov dword [ebp - 0x20], 0xed9ebbac
jmp 0x40eb17