Function at 0x40e6e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x190
mov eax, dword [0x44f800]
mov dword [esp + 0x110], 0x717e677c
mov word [esp + 0x114], 0
mov byte [esp + 0x116], 0
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0x15
xor dl, byte [esp + ecx + 0x110]
add dl, 0x97
mov byte [esp + ecx + 0x110], dl
inc ecx
cmp ecx, 7
jne 0x40e710
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x10], 0x43ab41d7
mov dword [esp + 0x14], 0x47ae45aa
mov dword [esp + 0x18], 0x4bde49dc
mov dword [esp + 0x1c], 0x4f604ddc
mov dword [esp + 0x20], 0x739e7194
mov dword [esp + 0x24], 0x77767598
mov byte [esp + 0x28], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x90
xor bl, byte [esp + edx + 0x10]
add bl, 0x30
mov byte [esp + edx + 0x10], bl
inc edx
cmp edx, 0x19
jne case.default.0x40e7b3
lea edx, [esp + 0x10]
push ecx
push 0
push edx
call eax
mov ecx, 0x44f7c8
push eax
call fcn.0043fe70
movzx eax, al
mov eax, dword [eax*4 + 0x4499f4]
mov ecx, 0x8df14f4e
xor ecx, dword [0x4499fc]
add eax, ecx
inc eax
jmp eax
cmp eax, 0x100
jb 0x423261
mov edi, eax
and edi, 0xff
mov ebx, edi
and ebx, 0xfffffffd
mov ecx, edi
or ecx, 0xfffffffd
xor ecx, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
mov ebp, ebx
and ebp, edx
mov dword [esp], ebp
mov ebp, ebx
xor ebp, 0xffffffff
mov edx, ecx
and edx, ebp
imul edx, dword [esp]
mov ebp, ecx
and ebp, ebx
or ecx, ebx
imul ecx, ebp
add ecx, edx
mov ebx, edi
xor ebx, 2
xor ebx, 0xffffffff
mov edx, edi
or edx, 2
and edx, ebx
mov ebp, edi
xor ebp, 0xffffffff
mov ebx, ebp
and ebx, 0xad8f14e4
and edi, 0x5270eb1b
or ebx, edi
xor ebx, 0xad8f14e6
or ebp, 0xfffffffd
xor ebp, 0xffffffff
and ebp, 0xffffffff
or ebx, ebp
imul ebx, edx
xor edx, edx
sub edx, ebx
xor edi, edi
sub edi, ecx
add edx, edi
xor ecx, ecx
sub ecx, edx
mov dl, byte [ecx + 0x44782a]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], dl
mov cl, byte [ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edi, 0xffffffff
mov byte [esi - 2], cl
dec esi
inc cl
invalid
invalid
mov esi, edi
dec esi
inc cl
call 0xea40bb65
invalid
push eax
invalid
jmp 0x4231b1
cmp eax, 0x10
setb cl
test cl, 1
jne 0x42326e
jmp 0x423282
mov al, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
jmp 0x42332b
mov edx, eax
and edx, 0xfffffffd
mov ecx, eax
or ecx, 0xfffffffd
xor ecx, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
mov ebx, edx
and ebx, edi
mov edi, edx
xor edi, 0xffffffff
mov ebp, ecx
and ebp, edi
imul ebp, ebx
mov edi, ecx
and edi, edx
or ecx, edx
imul ecx, edi
add ecx, ebp
mov edx, eax
and edx, 2
or eax, 2
mov edi, edx
xor edi, 0xffffffff
mov ebx, eax
and ebx, edi
mov ebp, eax
or ebp, edi
xor ebp, 0xffffffff
imul ebp, ebx
mov edi, eax
and edi, edx
or eax, edx
imul eax, edi
add eax, ebp
add eax, ecx
lea edx, str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
add edx, eax
mov al, byte [eax + 0x44782a]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esi - 1], al
mov al, byte [edx]
add ecx, 0xffffffff
mov byte [ecx], al
jmp 0x4232f7
jmp 0x42332b
jmp 0x42332d
mov eax, ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret