Function at 0x40e4c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x19c
mov esi, dword [0x44b0a0]
mov dword [esp + 0x11c], 0x313e273c
mov dword [esp + 0x120], 0
mov ecx, 0x181425ca
mov edx, 0x36
movzx eax, byte [esp + edx + 0xe6]
mov ebx, eax
or ebx, ecx
add bl, dl
add bl, bl
sub al, bl
movzx eax, al
add eax, edx
add al, 0xf6
mov byte [esp + edx + 0xe6], al
dec ecx
inc edx
cmp edx, 0x3e
jne 0x40e4f0
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x1c], 0x43ab41d7
mov dword [esp + 0x20], 0x47ae45aa
mov dword [esp + 0x24], 0x4bde49dc
mov dword [esp + 0x28], 0x4f604ddc
mov dword [esp + 0x2c], 0x739e7194
mov dword [esp + 0x30], 0x77767598
mov word [esp + 0x34], 0
mov byte [esp + 0x36], 0
mov edx, 0x1cd90010
nop
movzx eax, byte [esp + edx - 0x1cd8fff4]
xor eax, edx
mov edi, eax
and edi, 0x2f
xor eax, 0xaf
lea eax, [eax + edi*2]
inc al
mov byte [esp + edx - 0x1cd8fff4], al
inc edx
cmp edx, 0x1cd9002b
jne 0x40e560
lea edi, [esp + 0x1c]
push ecx
push 0
push edi
call esi
mov ecx, 0x44b068
push eax
call fcn.0043b6e0
movzx eax, al
mov eax, dword [eax*4 + 0x445a68]
mov ecx, 0x26366098
xor ecx, dword [0x445a70]
add eax, ecx
inc eax
jmp eax
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
adc dword [ecx], edx
add byte [eax], al
adc dl, byte [ebx]
adc al, 0x14
adc eax, 0x16161615
push ss
pop ss
pop ss
pop ss
pop ss
sbb byte [eax], bl
sbb byte [eax], bl
sbb byte [eax], bl
sbb byte [eax], bl
sbb dword [ecx], ebx
sbb dword [ecx], ebx
sbb dword [ecx], ebx
sbb dword [ecx], ebx
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb bl, byte [edx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb al, 0x1c
sbb eax, 0x1d1d1d1d
sbb eax, 0x1d1d1d1d
sbb eax, 0x1d1d1d1d
sbb eax, 0x1d1d1d1d
sbb eax, 0x1d1d1d1d
sbb eax, 0x1d1d1d1d
sbb eax, 0x201011d
add dword [ebx], eax
add dword [ecx + eax], eax
add eax, 0x7010601
add dword [eax], ecx
add dword [ecx], ecx
add dword [ecx], ecx
add dword [edx], ecx
add dword [edx], ecx
add dword [ebx], ecx
add dword [ebx], ecx
add dword [ecx + eax], ecx
or al, 1
or eax, 0xd010d01
add dword [0xe010e01], ecx
add dword [esi], ecx
add dword [esi], ecx
add dword [edi], ecx
add dword [edi], ecx
add dword [edi], ecx
add dword [edi], ecx
add dword [eax], edx
add dword [eax], edx
add dword [eax], edx
add dword [eax], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [ecx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [edx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ebx], edx
add dword [ecx + eax], edx
adc al, 1
adc al, 1
adc al, 1
adc al, 1
adc al, 1
adc al, 1
adc al, 1
adc eax, 0x15011501
add dword [0x15011501], edx
add dword [0x15011501], edx
add dword [0x15011501], edx
add dword [0x15011501], edx
add dword [0x16011601], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [esi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [edi], edx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [eax], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [ecx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [edx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ebx], ebx
add dword [ecx + eax], ebx
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb al, 1
sbb eax, 0x12111001
add byte [eax], cl
pop es
or dword [esi], eax
or al, byte [0x30c040b]
or eax, 0xf010e02
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [edi], al
add byte [eax], al
add byte [edi], cl
add byte [eax], al
add byte [edi], bl
add byte [eax], al
add byte [edi], bh
add byte [eax], al
add byte [edi], bh
add byte [eax], al
inc dword [eax]
add byte [eax], al
inc dword [ecx]
add byte [eax], al
inc dword [ebx]
add byte [eax], al
inc dword [edi]
add byte [eax], al
dec dword [edi]
add byte [eax], al
call [edi]
add byte [eax], al
invalid