Function at 0x49858e
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Create directory
Read .ini file

Disassembly:
push 0xe4
mov eax, 0x4e71b8
call fcn.004b5257
and dword [ebp - 0xf0], 0
lea eax, [ebp - 0xec]
mov esi, 0x53fda0
push eax
mov ecx, esi
call fcn.0046fad7
and dword [ebp - 4], 0
mov ebx, 0x4f9e14
push ebx
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 1
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xec]
call fcn.0040d610
test edi, edi
je 0x49860a
cmp byte [0x53fe3c], 0
jne 0x498659
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 2
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
mov byte [ebp - 4], 3
push dword [eax]
call fcn.004945b0
add esp, 0x10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 4
push ebx
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00445250
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 5
lea eax, [ebp - 0xec]
push eax
mov ecx, esi
call fcn.00484bb5
mov byte [ebp - 4], 6
mov edi, dword [edi]
mov eax, dword [eax]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
push str.language
push 0x4f9df8
call edi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xec]
call fcn.0040d610
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe8]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xdc]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 7
push ebx
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xe0], eax
mov byte [ebp - 4], 8
push 0x4fdbac
lea eax, [ebp - 0xec]
push eax
mov ecx, esi
call fcn.0047d67a
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xe0]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push 0x4fdbac
push 0x4f9df8
call edi
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xec]
call fcn.0040d610
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xe8]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdc]
call fcn.0040d610
xor eax, eax
push 0xc6
mov word [ebp - 0xd8], ax
push eax
lea eax, [ebp - 0xd6]
push eax
call fcn.004b4620
add esp, 0xc
cmp byte [0x53fe3c], 0
je 0x4987f8
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0xa
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
mov dword [ebp - 0xf0], 1
call fcn.00445250
add esp, 0xc
mov dword [ebp - 4], 0xb
push dword [eax]
lea eax, [ebp - 0xd8]
push 0x64
push eax
push 0
push str.channel
push 0x4f9df8
mov dword [ebp - 0xf0], 3
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 0xe1], 0
test eax, eax
jne 0x4987ff
mov byte [ebp - 0xe1], 1
mov dword [ebp - 4], 0xa
test byte [ebp - 0xf0], 2
je 0x498821
and dword [ebp - 0xf0], 0xfffffffd
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0xf0], 1
je 0x498840
and dword [ebp - 0xf0], 0xfffffffe
lea ecx, [ebp - 0xe0]
call fcn.0040d610
cmp byte [ebp - 0xe1], 0
je 0x49895b
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0xc
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.00484b80
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push str.channel
push 0x4f9df8
call edi
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0xf
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0048cba9
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push 0x500e70
push 0x4f9df8
call edi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
cmp byte [0x53fe3c], 0
je 0x498b6d
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x12
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x13
push dword [eax]
lea eax, [ebp - 0xd8]
push 0x64
push eax
push 0
push 0x500e70
push 0x4f9df8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
neg eax
sbb al, al
inc al
mov byte [ebp - 0xe1], al
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
cmp byte [ebp - 0xe1], 0
je 0x498a3d
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x14
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x15
push dword [eax]
push 0x4f24c0
push 0x500e70
push 0x4f9df8
call edi
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
push 0
push 0
call fcn.00447055
mov ecx, eax
call fcn.0046d07f
cmp dword [0x53fe98], 1
je 0x498a5f
cmp eax, 2
jne 0x498b6d
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x16
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.00484b80
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push str.channel
push 0x4f9df8
call edi
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x19
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0048cba9
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push 0x500e70
push 0x4f9df8
call edi
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
cmp byte [0x53fe53], 0
je 0x498baf
lea eax, [ebp - 0xdc]
push eax
mov ecx, esi
call fcn.00484b80
mov dword [ebp - 4], 0x1c
mov eax, dword [eax]
or dword [ebp - 0xf0], 4
push 4
push eax
push str.ENT.
call fcn.004b6581
add esp, 0xc
mov byte [ebp - 0xe1], 1
test eax, eax
je 0x498bb6
mov byte [ebp - 0xe1], 0
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0xf0], 4
je 0x498bd5
and dword [ebp - 0xf0], 0xfffffffb
lea ecx, [ebp - 0xdc]
call fcn.0040d610
cmp byte [ebp - 0xe1], 0
je 0x498c5b
lea eax, [ebp - 0xec]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x1d
push ebx
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00445250
add esp, 0xc
mov ebx, eax
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xdc]
push eax
mov ecx, esi
call fcn.00484b80
mov byte [ebp - 4], 0x1f
mov ebx, dword [ebx]
mov eax, dword [eax]
push ebx
push eax
push str.channel
push 0x4f9df8
call edi
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0xdc]
call fcn.0040d610
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0xe0]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xec]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x20
mov ebx, str.i18ni18n.ini
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x21
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
cmp dword [ebp - 0xe8], 0
je 0x498ccc
cmp byte [0x53fe3c], 0
jne 0x498d72
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x22
push 0x505964
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x23
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x24
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
mov byte [ebp - 4], 0x25
push dword [eax]
call fcn.004945b0
add esp, 0x10
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x26
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.00484bb5
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push str.Language
push str.Main
call edi
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x29
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x2a
push dword [eax]
push 0x4f9db0
push str.DefaultLanguage
push str.Main
call edi
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x2b
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x2c
push dword [eax]
push 0x505958
push str.Name1
push str.Font
call edi
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x2d
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x2e
push dword [eax]
push 0x505938
push str.Size1
push str.Font
call edi
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x2f
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x30
push dword [eax]
push str.Tahoma
push str.Name2
push str.Font
call edi
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x31
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x32
push dword [eax]
push 0x505938
push str.Size2
push str.Font
call edi
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x33
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x34
push dword [eax]
push 0x5058fc
push str.Name3
push str.Font
call edi
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x35
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x36
push dword [eax]
push 0x505938
push str.Size3
push str.Font
call edi
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x37
mov ebx, str._softmgrAdvUtils.ini
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x38
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
cmp dword [ebp - 0xe8], 0
je 0x4990e7
cmp byte [0x53fe3c], 0
jne 0x49918d
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x39
push str._softmgr
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x3a
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x3b
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
mov byte [ebp - 4], 0x3c
push dword [eax]
call fcn.004945b0
add esp, 0x10
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
lea eax, [ebp - 0xe8]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x3d
push ebx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00445250
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.00484bb5
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
mov eax, dword [eax]
push ecx
push eax
push str.lang
push str.qurl
call edi
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0xec]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d610
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x40
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00445250
add esp, 0xc
mov byte [ebp - 4], 0x41
push dword [eax]
push 0x4f9db0
push str.default_lang
push str.qurl
call edi
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.0040d610
mov al, 1
call fcn.004b52da
ret