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

Disassembly:
push 0xe4
mov eax, 0x4e735f
call fcn.004b5417
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 0x4986e0
cmp byte [0x53fe3c], 0
jne 0x49872f
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.004b47e0
add esp, 0xc
cmp byte [0x53fe3c], 0
je 0x4988ce
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 0x4988d5
mov byte [ebp - 0xe1], 1
mov dword [ebp - 4], 0xa
test byte [ebp - 0xf0], 2
je 0x4988f7
and dword [ebp - 0xf0], 0xfffffffd
lea ecx, [ebp - 0xdc]
call fcn.0040d610
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0xf0], 1
je 0x498916
and dword [ebp - 0xf0], 0xfffffffe
lea ecx, [ebp - 0xe0]
call fcn.0040d610
cmp byte [ebp - 0xe1], 0
je 0x498a31
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 0x498c43
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 0x498b13
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 0x498b35
cmp eax, 2
jne 0x498c43
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 0x498c85
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.004b6741
add esp, 0xc
mov byte [ebp - 0xe1], 1
test eax, eax
je 0x498c8c
mov byte [ebp - 0xe1], 0
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0xf0], 4
je 0x498cab
and dword [ebp - 0xf0], 0xfffffffb
lea ecx, [ebp - 0xdc]
call fcn.0040d610
cmp byte [ebp - 0xe1], 0
je 0x498d31
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 0x498da2
cmp byte [0x53fe3c], 0
jne 0x498e48
lea eax, [ebp - 0xe0]
push eax
mov ecx, esi
call fcn.0046fad7
mov dword [ebp - 4], 0x22
push 0x5059ec
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 0x5059e0
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 0x5059c0
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 0x5059c0
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 0x505984
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 0x5059c0
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 0x4991bd
cmp byte [0x53fe3c], 0
jne 0x499263
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.004b549a
ret