Function at 0x48c776
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c8
push esi
push edi
mov dword [ebp - 0x5c4], ecx
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 8], 0
cmp dword [0x67fa18], 0
je 0x48c7d8
push 0
push 0x3e8
push 0x1987
mov ecx, dword [ebp - 0x5c4]
call fcn.004116a0
jmp 0x48d54c
push 0x1987
mov ecx, dword [ebp - 0x5c4]
call fcn.004116d0
call fcn.004be560
mov dword [0x67aaa8], eax
call fcn.004bd34f
cmp dword [0x5ea054], 0
je 0x48c827
push 0x605
mov ecx, dword [ebp - 0x5c4]
call fcn.005654d4
mov ecx, eax
call fcn.00404920
test eax, eax
je 0x48c827
mov dword [ebp - 0x5c8], 1
jmp 0x48c831
mov dword [ebp - 0x5c8], 0
mov eax, dword [ebp - 0x5c8]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jne 0x48c866
cmp dword [0x67fa14], 1
je 0x48c861
cmp dword [0x67aa9c], 0
jne 0x48c861
cmp dword [0x67fa20], 0
je 0x48c866
jmp 0x48d54c
mov dword [0x67fa14], 1
mov dword [0x67aa78], 0
push 0x3ed
mov ecx, dword [ebp - 0x5c4]
call fcn.005654d4
mov dword [0x5eaa48], eax
cmp dword [ebp - 0x10c], 0
jne 0x48c8c1
push 0x11
push 0
push 0x5e916c
call fcn.0054bf90
add esp, 0xc
mov byte [0x5e9124], 0
push 0x11
push 0
push 0x673f68
call fcn.0054bf90
add esp, 0xc
cmp dword [0x67aaa8], 0
je 0x48ca95
mov dword [ebp - 0x224], 1
jmp 0x48c8e9
mov ecx, dword [ebp - 0x224]
add ecx, 1
mov dword [ebp - 0x224], ecx
mov edx, dword [0x673b98]
add edx, 1
cmp dword [ebp - 0x224], edx
jge 0x48ca90
mov eax, dword [ebp - 0x224]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
test ecx, ecx
je 0x48c925
mov edx, dword [ebp - 0x224]
xor eax, eax
mov al, byte [edx + 0x673f40]
cmp eax, 4
je 0x48c925
jmp 0x48c8da
mov ecx, dword [ebp - 0x224]
mov byte [ecx + 0x673f68], 0
cmp dword [0x67aa8c], 0
je 0x48c9ae
cmp dword [0x5ea054], 0
jne 0x48c9ae
mov edx, dword [ebp - 0x224]
push edx
push 0x5bebb8
call fcn.0047ee1b
add esp, 8
mov ecx, dword [ebp - 0x224]
mov dword [ecx*4 + 0x5ee10c], eax
mov edx, dword [ebp - 0x224]
push edx
push 0x5bebc0
call fcn.0047ee1b
add esp, 8
mov ecx, dword [ebp - 0x224]
mov dword [ecx*4 + 0x5ee0c8], eax
mov edx, dword [ebp - 0x224]
cmp dword [edx*4 + 0x5ee10c], 0xffffffff
jne 0x48c9a2
mov dword [ebp - 0x230], 0
jmp 0x48c9ac
mov dword [ebp - 0x230], 1
jmp 0x48ca0a
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x108]
push ecx
mov edx, dword [ebp - 0x224]
push edx
call fcn.005012bf
add esp, 0xc
mov eax, dword [ebp - 0x224]
push eax
mov ecx, dword [ebp - 0x220]
push ecx
lea edx, [ebp - 0x108]
push edx
mov eax, dword [ebp - 0x224]
lea ecx, [eax*4 + 0x5ee0c8]
push ecx
mov edx, dword [ebp - 0x224]
lea eax, [edx*4 + 0x5ee10c]
push eax
call fcn.0053ed10
add esp, 0x14
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
jne 0x48ca2f
mov ecx, dword [ebp - 0x224]
mov byte [ecx + 0x5e916c], 0
mov edx, dword [ebp - 0x224]
mov byte [edx + 0x673f68], 0
jmp 0x48ca8b
mov eax, dword [ebp - 0x224]
mov byte [eax + 0x673f68], 1
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x224]
cmp dword [ecx*4 + 0x5ee10c], 0xffffffff
je 0x48ca67
mov edx, dword [ebp - 0x224]
mov eax, dword [edx*4 + 0x5ee10c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x224]
cmp dword [ecx*4 + 0x5ee0c8], 0xffffffff
je 0x48ca8b
mov edx, dword [ebp - 0x224]
mov eax, dword [edx*4 + 0x5ee0c8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x48c8da
jmp 0x48d291
mov dword [ebp - 0x294], 0
mov ecx, 5
mov esi, 0x5bebc8
lea edi, [ebp - 0x270]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov dword [ebp - 0x259], ecx
mov dword [ebp - 0x255], ecx
mov byte [ebp - 0x251], cl
mov ecx, 5
mov esi, 0x5bebe0
lea edi, [ebp - 0x250]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edx, edx
mov dword [ebp - 0x23a], edx
mov dword [ebp - 0x236], edx
mov word [ebp - 0x232], dx
mov ecx, 6
mov esi, 0x5bebf8
lea edi, [ebp - 0x290]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
mov dword [ebp - 0x277], eax
mov word [ebp - 0x273], ax
mov byte [ebp - 0x271], al
mov dword [ebp - 0x224], 1
jmp 0x48cb34
mov ecx, dword [ebp - 0x224]
add ecx, 1
mov dword [ebp - 0x224], ecx
mov edx, dword [0x673b98]
add edx, 1
cmp dword [ebp - 0x224], edx
jge 0x48cb9d
mov eax, dword [ebp - 0x224]
movsx ecx, byte [eax + 0x67a644]
cmp ecx, 0xff
je 0x48cb81
mov edx, dword [ebp - 0x224]
xor eax, eax
mov al, byte [edx + 0x673f40]
test eax, eax
je 0x48cb81
mov ecx, dword [ebp - 0x224]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
cmp edx, 4
je 0x48cb81
jmp 0x48cb25
mov eax, dword [ebp - 0x224]
mov byte [eax + 0x673f68], 0
mov ecx, dword [ebp - 0x224]
mov byte [ecx + 0x67a644], 0
jmp 0x48cb25
push 0x104
push 0
lea edx, [ebp - 0x21c]
push edx
call fcn.0054bf90
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov dword [ebp - 0x224], 0
jmp 0x48cbe0
mov ecx, dword [ebp - 0x224]
add ecx, 1
mov dword [ebp - 0x224], ecx
cmp dword [ebp - 0x224], 0x1a
jge 0x48cea6
mov edx, dword [ebp - 0x224]
add edx, 0x41
mov byte [ebp - 0x498], dl
movsx eax, byte [ebp - 0x498]
movsx ecx, byte [ebp - 0x21c]
cmp eax, ecx
jne 0x48cc10
jmp 0x48cbd1
cmp dword [ebp - 0x10c], 0
je 0x48cc9f
mov dword [ebp - 0x4a0], 1
jmp 0x48cc38
mov edx, dword [ebp - 0x4a0]
add edx, 1
mov dword [ebp - 0x4a0], edx
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 0x4a0], eax
jge 0x48cc64
mov ecx, dword [ebp - 0x4a0]
movsx edx, byte [ecx + 0x67a644]
movsx eax, byte [ebp - 0x498]
cmp edx, eax
jne 0x48cc62
jmp 0x48cc64
jmp 0x48cc29
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 0x4a0], ecx
jge 0x48cc9f
mov edx, dword [ebp - 0x4a0]
xor eax, eax
mov al, byte [edx + 0x673f40]
test eax, eax
je 0x48cc9f
mov ecx, dword [ebp - 0x4a0]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
cmp edx, 4
je 0x48cc9f
jmp 0x48cbd1
push 0x200
push 0
lea eax, [ebp - 0x494]
push eax
call fcn.0054bf90
add esp, 0xc
lea ecx, [ebp - 0x114]
push ecx
lea edx, [ebp - 0x494]
push edx
mov al, byte [ebp - 0x498]
push eax
call fcn.004be7ee
add esp, 0xc
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x479]
and ecx, 0xff
cmp ecx, 0x33
jne 0x48cd2a
mov edx, dword [ebp - 0x478]
and edx, 0xff
cmp edx, 0x32
jne 0x48cd2a
mov eax, dword [ebp - 0x477]
and eax, 0xff
cmp eax, 0x30
jne 0x48cd2a
mov ecx, dword [ebp - 0x476]
and ecx, 0xff
cmp ecx, 0x24
jne 0x48cd2a
mov dword [ebp - 0x294], 1
jmp 0x48cea6
mov byte [ebp - 0x47c], 0
mov byte [ebp - 0x25b], 0
mov byte [ebp - 0x23b], 0
mov byte [ebp - 0x27b], 0
mov edx, dword [ebp - 0x494]
and edx, 0xff
cmp edx, 0x53
jne 0x48cd87
mov eax, dword [ebp - 0x493]
and eax, 0xff
cmp eax, 0x4d
jne 0x48cd87
mov ecx, dword [ebp - 0x492]
and ecx, 0xff
cmp ecx, 0x49
jne 0x48cd87
mov dword [ebp - 0x294], 1
jmp 0x48cea6
mov edx, dword [ebp - 0x494]
and edx, 0xff
cmp edx, 0x73
jne 0x48cdc8
mov eax, dword [ebp - 0x493]
and eax, 0xff
cmp eax, 0x6d
jne 0x48cdc8
mov ecx, dword [ebp - 0x492]
and ecx, 0xff
cmp ecx, 0x69
jne 0x48cdc8
mov dword [ebp - 0x294], 1
jmp 0x48cea6
mov edx, dword [ebp - 0x494]
and edx, 0xff
cmp edx, 0x55
jne 0x48ce09
mov eax, dword [ebp - 0x493]
and eax, 0xff
cmp eax, 0x53
jne 0x48ce09
mov ecx, dword [ebp - 0x492]
and ecx, 0xff
cmp ecx, 0x42
jne 0x48ce09
mov dword [ebp - 0x294], 1
jmp 0x48cea6
mov edx, dword [ebp - 0x494]
and edx, 0xff
cmp edx, 0x33
jne 0x48ce47
mov eax, dword [ebp - 0x493]
and eax, 0xff
cmp eax, 0x33
jne 0x48ce47
mov ecx, dword [ebp - 0x492]
and ecx, 0xff
cmp ecx, 0x30
jne 0x48ce47
mov dword [ebp - 0x294], 1
jmp 0x48cea6
lea edx, [ebp - 0x491]
push edx
lea eax, [ebp - 0x270]
push eax
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x48ce95
lea ecx, [ebp - 0x491]
push ecx
lea edx, [ebp - 0x250]
push edx
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x48ce95
lea eax, [ebp - 0x491]
push eax
lea ecx, [ebp - 0x290]
push ecx
call fcn.0054cf00
add esp, 8
test eax, eax
jne 0x48cea1
mov dword [ebp - 0x294], 1
jmp 0x48cea6
jmp 0x48cbd1
cmp dword [ebp - 0x294], 0
je 0x48cf87
push 0x6784a8
push 0
push 0x5bec14
push 0x5bec28
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x48cf47
push 0x67fa98
mov dl, byte [ebp - 0x498]
push edx
call fcn.0053511d
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x63
jne 0x48cf45
mov ecx, 0x5ee158
call fcn.005251ac
push 0x67fa9c
mov al, byte [ebp - 0x498]
push eax
call fcn.0053511d
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x63
jne 0x48cf45
lea ecx, [ebp - 0x520]
push ecx
mov dl, byte [ebp - 0x498]
push edx
call fcn.004be602
add esp, 8
test eax, eax
je 0x48cf45
lea eax, [ebp - 0x520]
push eax
mov cl, byte [ebp - 0x498]
push ecx
call fcn.005349f4
add esp, 8
mov dword [ebp - 8], eax
jmp 0x48cf4e
mov dword [ebp - 8], 1
cmp dword [ebp - 8], 0x63
je 0x48cf7d
mov edx, dword [0x673b98]
add edx, 1
cmp dword [ebp - 8], edx
jge 0x48cf7d
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 0x498]
mov byte [eax + 0x67a644], cl
mov edx, dword [ebp - 8]
mov byte [edx + 0x673f68], 1
jmp 0x48cf87
mov dword [ebp - 0x294], 0
cmp dword [ebp - 0x294], 1
je 0x48cf9d
cmp dword [ebp - 0x10c], 0
je 0x48d291
mov dword [ebp - 0x224], 2
jmp 0x48cfb8
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 0x224], ecx
jge 0x48d291
mov dword [ebp - 0x294], 0
push 0x200
push 0
lea edx, [ebp - 0x494]
push edx
call fcn.0054bf90
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x494]
push ecx
movsx edx, byte [ebp - 0x498]
mov eax, dword [ebp - 0x224]
lea ecx, [edx + eax - 1]
push ecx
call fcn.004be7ee
add esp, 0xc
mov dword [ebp - 0x49c], eax
mov edx, dword [ebp - 0x479]
and edx, 0xff
cmp edx, 0x33
jne 0x48d068
mov eax, dword [ebp - 0x478]
and eax, 0xff
cmp eax, 0x32
jne 0x48d068
mov ecx, dword [ebp - 0x477]
and ecx, 0xff
cmp ecx, 0x30
jne 0x48d068
mov edx, dword [ebp - 0x476]
and edx, 0xff
cmp edx, 0x24
jne 0x48d068
mov dword [ebp - 0x294], 1
mov byte [ebp - 0x47c], 0
mov byte [ebp - 0x25b], 0
mov byte [ebp - 0x23b], 0
mov byte [ebp - 0x27b], 0
mov eax, dword [ebp - 0x494]
and eax, 0xff
cmp eax, 0x53
jne 0x48d0c0
mov ecx, dword [ebp - 0x493]
and ecx, 0xff
cmp ecx, 0x4d
jne 0x48d0c0
mov edx, dword [ebp - 0x492]
and edx, 0xff
cmp edx, 0x49
jne 0x48d0c0
mov dword [ebp - 0x294], 1
mov eax, dword [ebp - 0x494]
and eax, 0xff
cmp eax, 0x73
jne 0x48d0fc
mov ecx, dword [ebp - 0x493]
and ecx, 0xff
cmp ecx, 0x6d
jne 0x48d0fc
mov edx, dword [ebp - 0x492]
and edx, 0xff
cmp edx, 0x69
jne 0x48d0fc
mov dword [ebp - 0x294], 1
mov eax, dword [ebp - 0x494]
and eax, 0xff
cmp eax, 0x55
jne 0x48d138
mov ecx, dword [ebp - 0x493]
and ecx, 0xff
cmp ecx, 0x53
jne 0x48d138
mov edx, dword [ebp - 0x492]
and edx, 0xff
cmp edx, 0x42
jne 0x48d138
mov dword [ebp - 0x294], 1
lea eax, [ebp - 0x491]
push eax
lea ecx, [ebp - 0x270]
push ecx
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x48d186
lea edx, [ebp - 0x491]
push edx
lea eax, [ebp - 0x250]
push eax
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x48d186
lea ecx, [ebp - 0x491]
push ecx
lea edx, [ebp - 0x290]
push edx
call fcn.0054cf00
add esp, 8
test eax, eax
jne 0x48d190
mov dword [ebp - 0x294], 1
cmp dword [ebp - 0x294], 0
je 0x48d28c
push 0x6784a8
push 0
push 0x5bec34
push 0x5bec48
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x48d240
push 0x67faa0
movsx eax, byte [ebp - 0x498]
mov ecx, dword [ebp - 0x224]
lea edx, [eax + ecx - 1]
push edx
call fcn.0053511d
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x63
jne 0x48d23e
mov ecx, 0x5ee158
call fcn.005251ac
push 0x67faa4
mov al, byte [ebp - 0x498]
push eax
call fcn.0053511d
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x63
jne 0x48d23e
lea ecx, [ebp - 0x5a0]
push ecx
mov dl, byte [ebp - 0x498]
push edx
call fcn.004be602
add esp, 8
test eax, eax
je 0x48d23e
lea eax, [ebp - 0x5a0]
push eax
mov cl, byte [ebp - 0x498]
push ecx
call fcn.005349f4
add esp, 8
mov dword [ebp - 8], eax
jmp 0x48d249
mov edx, dword [ebp - 0x224]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x63
je 0x48d282
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 8], eax
jge 0x48d282
movsx ecx, byte [ebp - 0x498]
mov edx, dword [ebp - 0x224]
lea eax, [ecx + edx - 1]
mov ecx, dword [ebp - 8]
mov byte [ecx + 0x67a644], al
mov edx, dword [ebp - 8]
mov byte [edx + 0x673f68], 1
jmp 0x48d28c
mov dword [ebp - 0x294], 0
jmp 0x48cfa9
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 1
jmp 0x48d2b6
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 0x224], ecx
jge 0x48d3cc
mov edx, dword [ebp - 0x224]
xor eax, eax
mov al, byte [edx + 0x673f68]
cmp eax, 1
jne 0x48d2ed
mov ecx, dword [ebp - 0x228]
add ecx, 1
mov dword [ebp - 0x228], ecx
cmp dword [0x67aa9c], 0
jne 0x48d37b
mov edx, dword [ebp - 0x224]
xor eax, eax
mov al, byte [edx + 0x673f68]
test eax, eax
je 0x48d30e
jmp 0x48d37b
cmp dword [0x5ea000], 0
jle 0x48d364
mov ecx, dword [0x5ea000]
push ecx
mov edx, dword [ebp - 0x224]
sub edx, 1
push edx
push 6
mov ecx, dword [0x5eaa50]
call fcn.00417fc6
push 0x67faa8
mov eax, dword [0x5ea000]
push eax
mov ecx, dword [ebp - 0x224]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov edx, dword [ebp - 0x224]
push edx
call fcn.0048535c
add esp, 4
push 0x67faac
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax*4 + 0x5eaa58]
call fcn.0056567d
mov ecx, dword [ebp - 0x224]
xor edx, edx
mov dl, byte [ecx + 0x673f68]
push edx
mov eax, dword [ebp - 0x224]
push eax
call fcn.00485774
add esp, 8
mov ecx, dword [ebp - 0x224]
xor edx, edx
mov dl, byte [ecx + 0x673f68]
test edx, edx
jne 0x48d3c7
cmp dword [0x5ea10c], 0
je 0x48d3c7
push 0
push 0
mov eax, dword [ebp - 0x224]
push eax
call fcn.004853cf
add esp, 0xc
jmp 0x48d2a7
mov dword [0x67fa14], 0
cmp dword [ebp - 0x228], 0
jne 0x48d54c
cmp dword [0x5edfb8], 0
je 0x48d537
mov dword [ebp - 0x5a4], 0xffffffff
mov dword [ebp - 0x5c0], 0xffffffff
mov dword [ebp - 0x5b8], 0xffffffff
mov dword [ebp - 0x5bc], 0xffffffff
push 0x10
push 0
lea ecx, [ebp - 0x5b4]
push ecx
call fcn.0054bf90
add esp, 0xc
mov byte [ebp - 0x5b4], 0xf0
mov byte [ebp - 0x5b3], 0xf1
mov byte [ebp - 0x5b2], 0xff
cmp dword [0x5bd8e8], 0xffffffff
je 0x48d49a
mov dword [ebp - 0x224], 0
jmp 0x48d464
mov edx, dword [ebp - 0x224]
add edx, 1
mov dword [ebp - 0x224], edx
cmp dword [ebp - 0x224], 5
jge 0x48d49a
push 0
push 0
lea eax, [ebp - 0x5b4]
push eax
mov ecx, dword [0x5bd8e8]
push ecx
call fcn.004c2c9c
add esp, 0x10
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x48d498
jmp 0x48d49a
jmp 0x48d455
cmp dword [0x5bd8e8], 0xffffffff
je 0x48d4bc
mov edx, dword [0x5bd8e8]
push edx
call fcn.004beacb
add esp, 4
mov dword [0x5bd8e8], 0xffffffff
cmp dword [0x5bd8ec], 0xffffffff
je 0x48d516
mov dword [ebp - 0x224], 0
jmp 0x48d4e0
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 5
jge 0x48d516
push 0
push 0
lea ecx, [ebp - 0x5b4]
push ecx
mov edx, dword [0x5bd8ec]
push edx
call fcn.004c2c9c
add esp, 0x10
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x48d514
jmp 0x48d516
jmp 0x48d4d1
cmp dword [0x5bd8ec], 0xffffffff
je 0x48d537
mov eax, dword [0x5bd8ec]
push eax
call fcn.004beacb
add esp, 4
mov dword [0x5bd8ec], 0xffffffff
mov dword [0x67fa24], 0
mov ecx, dword [ebp - 0x5c4]
call fcn.004afc19
pop edi
pop esi
mov esp, ebp
pop ebp
ret