Function at 0x180049d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x160
mov eax, dword [0x1804e020]
xor eax, esp
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x164]
push ebx
push ebp
push esi
push edi
push 0x18040998
push eax
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x38], 9
mov byte [esp + 0x39], 8
mov byte [esp + 0x3a], 3
mov byte [esp + 0x3b], 0
mov byte [esp + 0x3c], 2
mov byte [esp + 0x3d], 5
mov byte [esp + 0x3e], 0xe
mov byte [esp + 0x3f], 0xb
mov byte [esp + 0x40], 4
mov byte [esp + 0x41], 7
mov byte [esp + 0x42], 1
mov byte [esp + 0x43], 0xf
mov byte [esp + 0x44], 0xc
mov byte [esp + 0x45], 0xa
mov byte [esp + 0x46], 6
mov byte [esp + 0x47], 0xd
call dword [sym.imp.MSVCR90.dll__wfopen_s]
add esp, 0xc
test eax, eax
jne 0x18004c15
cmp dword [esp + 0x10], eax
je 0x18004c15
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ax, word [esp + 0x1c]
mov edx, 0x3e8
cmp ax, dx
lea edx, [esp + 0x3c]
jae 0x18004a8e
movzx eax, ax
push eax
push str.0_ld
jmp 0x18004a97
movzx ecx, ax
push ecx
push 0x180409a8
call fcn.180054e0
mov ax, word [esp + 0x26]
add esp, 8
cmp ax, 0xa
jae 0x18004ab5
movzx edx, ax
push edx
push str.0_ld
jmp 0x18004abe
movzx eax, ax
push eax
push 0x180409a8
lea edx, [esp + 0x20]
call fcn.18005500
mov ax, word [esp + 0x2a]
add esp, 8
cmp ax, 0xa
jae 0x18004ae0
movzx ecx, ax
push ecx
push str.0_ld
jmp 0x18004ae9
movzx edx, ax
push edx
push 0x180409a8
lea edx, [esp + 0x1c]
call fcn.18005500
add esp, 8
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x44]
push edx
push str._s_s_s
lea edx, [esp + 0x6c]
call fcn.18005520
push 0
call dword [sym.imp.MSVCR90.dll__time64]
push eax
call dword [sym.imp.MSVCR90.dll_srand]
push 0x100
lea eax, [esp + 0x84]
push 0
push eax
call sub.MSVCR90.dll_memset
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x6c]
push 9
push edx
call dword [sym.imp.MSVCR90.dll_strcpy_s]
lea eax, [esp + 0x74]
add esp, 0x30
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x18004b54
sub eax, edx
mov ebp, eax
lea edi, [ebp + ebp]
xor esi, esi
test edi, edi
jle 0x18004ba4
mov ebx, dword [sym.imp.MSVCR90.dll_rand]
nop
call ebx
mov ecx, eax
shl ecx, 6
sub ecx, eax
mov eax, 0x80010003
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
add al, 0x41
shr ecx, 1
mov byte [esp + ecx + 0x50], al
movzx ecx, byte [esp + ecx + 0x34]
inc esi
cmp esi, edi
mov byte [esp + ecx + 0x68], al
jl 0x18004b70
xor eax, eax
test ebp, ebp
jle 0x18004bc2
lea ebx, [ebx]
movzx edx, byte [esp + eax + 0x2c]
mov cl, byte [esp + eax + 0x44]
inc eax
cmp eax, ebp
mov byte [esp + edx + 0x68], cl
jl 0x18004bb0
xor eax, eax
test ebp, ebp
jle 0x18004beb
jmp 0x18004bd0
movzx ecx, byte [esp + eax + 0x2c]
mov edx, eax
and edx, 7
mov dl, byte [esp + edx + 0x50]
xor byte [esp + ecx + 0x68], dl
lea ecx, [esp + ecx + 0x68]
inc eax
cmp eax, ebp
jl 0x18004bd0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x68]
push eax
push 0x180409b4
push ecx
call dword [sym.imp.MSVCR90.dll_fprintf]
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 0x10
mov eax, 1
jmp 0x18004c17
xor eax, eax
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1802929c
add esp, 0x160
ret 4