Function at 0x404840
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431237
mov eax, dword fs:[0]
push eax
sub esp, 0xa54
mov eax, dword [0x448034]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0xa58], 0
mov dword [ebp - 0xa5c], edi
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
cmp dword [esi + 0x14], 8
mov dword [ebp - 0xa58], 1
jb 0x4048a8
mov esi, dword [esi]
push 0x208
lea eax, [ebp - 0xa1c]
push 0
push eax
mov dword [ebp - method.CProfileIni.virtual_0], vtable.CProfileIni.0
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0xa1c]
push esi
push 0x104
push eax
call dword [sym.imp.MSVCR110.dll_wcscpy_s]
add esp, 0xc
xor eax, eax
push 0x7fe
mov dword [ebp - 4], 1
push eax
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40493c
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.IMAGE0
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404966
xor ecx, ecx
jmp 0x40497f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404970
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 2
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x4049b1
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4049b4
mov esi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x4049e0
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x404a15
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x404a9c
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404a47
xor ecx, ecx
jmp 0x404a5f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404a50
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x404a9c
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404ad5
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.IMAGE1
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404aff
xor ecx, ecx
jmp 0x404b1f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
jmp 0x404b10
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404b10
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 4
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x404b51
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404b54
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x404b7a
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x404baf
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x404c3c
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404be1
xor ecx, ecx
jmp 0x404bff
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404bf0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x404c3c
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404c75
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.IMAGE2
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404c9f
xor ecx, ecx
jmp 0x404cbf
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
jmp 0x404cb0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404cb0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 6
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x404cf1
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404cf4
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x404d1a
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x404d4f
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x404dd2
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404d7d
xor ecx, ecx
jmp 0x404d95
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404d86
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x404dd2
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404e0b
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.FILE0
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404e35
xor ecx, ecx
jmp 0x404e4f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404e40
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 8
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x404e81
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404e84
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x404eaa
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x404edf
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x404f62
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404f0d
xor ecx, ecx
jmp 0x404f25
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404f16
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x404f62
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404f9b
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.FILE1
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x404fc5
xor ecx, ecx
jmp 0x404fdf
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404fd0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 0xa
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x405011
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405014
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x40503a
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x40506f
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x4050f2
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x40509d
xor ecx, ecx
jmp 0x4050b5
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4050a6
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x4050f2
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40512b
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.FILE2
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x405155
xor ecx, ecx
jmp 0x40516f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405160
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 0xc
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x4051a1
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4051a4
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x4051ca
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x4051ff
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x405282
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x40522d
xor ecx, ecx
jmp 0x405245
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405236
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.004064f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
jb 0x405282
push dword [ebp - 0xa38]
call esi
add esp, 4
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4052bb
lea eax, [ebp - 0xa1c]
push eax
push 0x104
lea eax, [ebp - 0x810]
push eax
push 0x436b28
push str.FILE3
push str.REPORT_INFO
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x4052e5
xor ecx, ecx
jmp 0x4052ff
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4052f0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea edx, [ebp - 0xa38]
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 0xe
call fcn.0041a740
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x405331
mov ecx, dword [ecx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405334
sub ecx, edx
sar ecx, 1
setne bl
cmp dword [ebp - 0xa3c], 8
jb 0x40535a
push dword [ebp - 0xa50]
call esi
add esp, 4
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa24], 8
mov dword [ebp - 0xa3c], 7
mov dword [ebp - 0xa40], 0
mov word [ebp - 0xa50], ax
jb 0x40538f
push dword [ebp - 0xa38]
call esi
add esp, 4
test bl, bl
je 0x40540e
xor eax, eax
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], 0
mov word [ebp - 0xa38], ax
cmp word [ebp - 0x810], ax
jne 0x4053bd
xor ecx, ecx
jmp 0x4053d5
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4053c6
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00402fc0
lea eax, [ebp - 0xa38]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xf
call fcn.004064f0
cmp dword [ebp - 0xa24], 8
jb 0x40540e
push dword [ebp - 0xa38]
call esi
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042ef5e
mov esp, ebp
pop ebp
ret