Function at 0x408c25
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4706b6
call fcn.0046ffb4
sub esp, 0x170
push ebx
push esi
push edi
push 0x5b01c0
mov ecx, 0x5ad988
xor ebx, ebx
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x19], bl
div ecx
lea ecx, [edx + 1]
mov al, cl
mov byte [ebp - 0x11], cl
xor al, 0x64
mov byte [ebp - 0x21], cl
mov byte [ebp - 0x20], al
mov al, cl
xor al, 0x65
mov byte [ebp - 0x1f], al
mov al, cl
xor al, 0x6c
mov byte [ebp - 0x1e], al
mov al, cl
xor al, 0x2e
mov byte [ebp - 0x1d], al
mov al, cl
xor al, 0x62
mov byte [ebp - 0x1c], al
mov al, cl
xor al, 0x61
mov byte [ebp - 0x1b], al
mov al, cl
push ecx
xor al, 0x74
lea ecx, [ebp - 0xa4]
push 7
mov byte [ebp - 0x1a], al
call fcn.004123c9
mov dl, byte [ebp - 0x11]
mov esi, ebx
mov cl, byte [ebp + esi - 0x20]
lea eax, [ebp - 0xa4]
xor cl, dl
cmp dword [ebp - 0x90], 0xf
cmova eax, dword [ebp - 0xa4]
mov byte [eax + esi], cl
inc esi
cmp esi, 7
jb 0x408ca0
push dword [ebp - 0x18]
mov dword [ebp - 4], ebx
push ecx
lea ecx, [ebp - 0x3e]
call fcn.00413401
push ecx
push 0x10
lea ecx, [ebp - 0x5c]
mov edi, eax
call fcn.004123c9
mov esi, ebx
mov dl, byte [edi + esi + 1]
lea eax, [ebp - 0x5c]
xor dl, byte [edi]
cmp dword [ebp - 0x48], 0xf
cmova eax, dword [ebp - 0x5c]
mov byte [eax + esi], dl
inc esi
cmp esi, 0x10
jb 0x408ce1
push 0x5b01c0
mov ecx, 0x5ad988
mov byte [ebp - 4], 1
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x19], bl
div ecx
lea ecx, [edx + 1]
mov al, cl
mov byte [ebp - 0x11], cl
xor al, 0x64
mov byte [ebp - 0x21], cl
mov byte [ebp - 0x20], al
mov al, cl
xor al, 0x65
mov byte [ebp - 0x1f], al
mov al, cl
xor al, 0x6c
mov byte [ebp - 0x1e], al
mov al, cl
xor al, 0x20
mov byte [ebp - 0x1d], al
mov al, cl
xor al, 0x22
mov byte [ebp - 0x1c], al
mov al, cl
xor al, 0x2e
mov byte [ebp - 0x1b], al
mov al, cl
push ecx
xor al, 0x5c
lea ecx, [ebp - 0x8c]
push 7
mov byte [ebp - 0x1a], al
call fcn.004123c9
mov dl, byte [ebp - 0x11]
mov esi, ebx
push 0xf
pop edi
mov cl, byte [ebp + esi - 0x20]
lea eax, [ebp - 0x8c]
xor cl, dl
cmp dword [ebp - 0x78], edi
cmova eax, dword [ebp - 0x8c]
mov byte [eax + esi], cl
inc esi
cmp esi, 7
jb 0x408d68
push dword [ebp - 0x18]
mov byte [ebp - 4], 2
push ecx
lea ecx, [ebp - 0x29]
call fcn.00413488
push ecx
push edi
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x74]
xor cl, byte [esi]
cmp dword [ebp - 0x60], edi
cmova eax, dword [ebp - 0x74]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jb 0x408da5
sub esp, 0xc
mov byte [ebp - 4], 3
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x17c]
push eax
call fcn.004120d5
push dword [ebp - 0x18]
mov byte [ebp - 4], 4
cmp dword [ebp - 0x12c], 0
push ecx
je 0x408f8a
lea ecx, [ebp - 0x23]
call fcn.0041350c
push ecx
push 9
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x44]
xor cl, byte [esi]
cmp dword [ebp - 0x30], edi
cmova eax, dword [ebp - 0x44]
mov byte [eax + edx], cl
inc edx
cmp edx, 9
jb 0x408e02
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x17c]
call fcn.00412f0b
mov ecx, eax
call fcn.00413570
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00412370
cmp dword [ebp - 0x48], edi
lea edx, [ebp - 0x5c]
push dword [ebp - 0x4c]
cmova edx, dword [ebp - 0x5c]
lea ecx, [ebp - 0x17c]
call fcn.00416880
pop ecx
mov edx, 0x5ad460
mov ecx, eax
call fcn.00412f0b
mov ecx, eax
call fcn.00413570
cmp dword [ebp - 0x48], edi
lea edx, [ebp - 0x5c]
push dword [ebp - 0x4c]
cmova edx, dword [ebp - 0x5c]
lea ecx, [ebp - 0x17c]
call fcn.00416880
pop ecx
push dword [ebp - 0x18]
mov edi, eax
push ecx
lea ecx, [ebp - 0x23]
call fcn.004136f4
push ecx
push 9
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x44]
xor cl, byte [esi]
cmp dword [ebp - 0x30], 0xf
cmova eax, dword [ebp - 0x44]
mov byte [eax + edx], cl
inc edx
cmp edx, 9
jb 0x408ea2
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 6
mov ecx, edi
call fcn.00412f0b
mov ecx, eax
call fcn.00413570
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00412370
cmp dword [ebp - 0x78], 0xf
lea edx, [ebp - 0x8c]
push dword [ebp - 0x7c]
cmova edx, dword [ebp - 0x8c]
lea ecx, [ebp - 0x17c]
call fcn.00416880
pop ecx
mov edx, 0x5ad460
mov ecx, eax
call fcn.00412f0b
mov edx, 0x4747ec
mov ecx, eax
call fcn.00413760
mov ecx, eax
call fcn.00413570
cmp dword [ebp - 0x60], 0xf
lea edx, [ebp - 0x74]
push dword [ebp - 0x64]
cmova edx, dword [ebp - 0x74]
lea ecx, [ebp - 0x17c]
call fcn.00416880
pop ecx
mov ecx, eax
call fcn.00413570
lea ecx, [ebp - 0x17c]
call fcn.00412084
push dword [ebp - 0x18]
mov edi, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push ecx
lea ecx, [ebp - 0xc5]
call fcn.00413901
push ecx
push 0x1f
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.004123c9
mov dl, byte [esi + ebx + 1]
lea eax, [ebp - 0x44]
xor dl, byte [esi]
cmp dword [ebp - 0x30], 0xf
cmova eax, dword [ebp - 0x44]
mov byte [eax + ebx], dl
inc ebx
cmp ebx, 0x1f
jb 0x408f6a
mov byte [ebp - 4], 7
jmp 0x408fc6
mov edi, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea ecx, [ebp - 0xc1]
call fcn.004139d4
push ecx
push 0x1b
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.004123c9
mov dl, byte [esi + ebx + 1]
lea eax, [ebp - 0x44]
xor dl, byte [esi]
cmp dword [ebp - 0x30], 0xf
cmova eax, dword [ebp - 0x44]
mov byte [eax + ebx], dl
inc ebx
cmp ebx, 0x1b
jb 0x408fa8
mov byte [ebp - 4], 8
lea edx, [ebp - 0x44]
mov ecx, edi
call fcn.00412f0b
push 0x412f20
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
lea ecx, [ebp - 0x44]
call fcn.00412370
lea ecx, [ebp - 0x114]
call fcn.004120a5
lea ecx, [ebp - 0x114]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x74]
call fcn.00412370
lea ecx, [ebp - 0x8c]
call fcn.00412370
lea ecx, [ebp - 0x5c]
call fcn.00412370
lea ecx, [ebp - 0xa4]
call fcn.00412370
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret