Function at 0x404470
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x6d6f40]
mov ebx, ecx
xor eax, ebp
cmp ecx, 2
mov dword [esp + 0x30], eax
je 0x4044aa
cmp ebx, 1
je 0x4044a3
mov edi, 0x6da031
test ebx, ebx
jne 0x4044b1
call fcn.00401070
jmp 0x4044af
call fcn.004010d0
jmp 0x4044af
call fcn.004011b0
mov edi, eax
cmp byte [edi], 0
jne 0x4044cd
test ebx, ebx
jne 0x4047d4
push str.Configuration_file_unspecified_n
call fcn.004433f0
jmp 0x4047d1
push edi
call fcn.004011c0
add esp, 4
cmp eax, 0xffffffff
jne 0x404544
call fcn.006880b0
cmp eax, 2
jne 0x4044f8
push edi
push str.No_configuration_file_found__s_n
call fcn.004433f0
add esp, 8
jmp 0x4047d4
call fcn.0045f390
test eax, eax
jne 0x404733
push 0x6b28c7
push 0
call fcn.0045f400
add esp, 8
call fcn.006880a0
mov esi, eax
call fcn.00687cf0
push esi
push eax
push edi
push str.Error_opening_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
push 0x6b28ff
push 0
call fcn.0045f400
add esp, 8
jmp 0x4047d4
lea esi, [esp + 8]
push esi
mov dword [esp + 8], eax
push eax
call fcn.006880c0
add esp, 8
test eax, eax
je 0x404599
call fcn.0045f390
test eax, eax
jne 0x40477a
push 0x6b2901
push 0
call fcn.0045f400
add esp, 8
call fcn.006880a0
mov ebx, eax
call fcn.00687cf0
push ebx
push eax
push edi
push str.Error_accessing_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
push 0x6b293b
jmp 0x4045e5
mov ecx, dword [esp + 0x20]
test ebx, ebx
jne 0x4045ae
push esi
mov esi, ecx
call fcn.004586b0
mov ecx, esi
add esp, 4
cmp ecx, 0x100001
jb 0x4045f4
call fcn.0045f390
test eax, eax
jne 0x404754
push 0x6b293d
push 0
call fcn.0045f400
add esp, 8
push edi
push str.Too_big_configuration_file__s_n
call fcn.00443500
add esp, 8
push 0x6b2960
push 0
call fcn.0045f400
add esp, 8
jmp 0x404796
test ecx, ecx
jne 0x40460b
push edi
push str.Empty_configuration_file__s_n
call fcn.00443500
add esp, 8
jmp 0x404796
lea eax, [ecx + 1]
push eax
mov ebx, ecx
call fcn.004904d0
add esp, 4
test eax, eax
jne 0x40464e
call fcn.0045f390
test eax, eax
jne 0x40475f
push 0x6b2981
push 0
call fcn.0045f400
add esp, 8
push edi
push str.Low_memory_reading_configuration_file__s_n
call fcn.00443500
add esp, 8
push 0x6b29af
jmp 0x4045e5
mov esi, eax
push ebx
push eax
push dword [esp + 0xc]
call fcn.00688160
add esp, 0xc
test eax, eax
js 0x404666
cmp eax, ebx
je 0x4046a5
call fcn.0045f390
test eax, eax
jne 0x4047a2
push 0x6b29b1
push 0
call fcn.0045f400
add esp, 8
call fcn.006880a0
mov ebx, eax
call fcn.00687cf0
push ebx
push eax
push edi
push str.Error_reading_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
push 0x6b29e9
jmp 0x404724
cmp ebx, 2
mov byte [esi + ebx], 0
jb 0x4046be
mov al, byte [esi]
cmp al, 0xfe
je 0x4046f3
cmp al, 0xff
jne 0x4046be
cmp byte [esi + 1], 0xfe
je 0x4046f9
mov ecx, esi
mov edx, ebx
push edi
push 1
call fcn.00404260
add esp, 8
push edi
push str.Reading_configuration_file__s_n
call fcn.004433f0
add esp, 8
mov ecx, esi
mov edx, ebx
push edi
push 0
call fcn.00404260
add esp, 8
push dword [esp + 4]
jmp 0x4047c3
cmp byte [esi + 1], 0xff
jne 0x4046be
call fcn.0045f390
test eax, eax
jne 0x40476a
push 0x6b29eb
push 0
call fcn.0045f400
add esp, 8
push edi
push str.Invalid_configuration_file__s__it_looks_like_UTF16_n
call fcn.00443500
add esp, 8
push 0x6b2a23
push 0
call fcn.0045f400
add esp, 8
jmp 0x4047be
call fcn.006880a0
mov esi, eax
call fcn.00687cf0
push esi
push eax
push edi
push str.Error_opening_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
jmp 0x4047d4
push edi
push str.Too_big_configuration_file__s_n
jmp 0x4045fe
push edi
push str.Low_memory_reading_configuration_file__s_n
jmp 0x4045fe
push edi
push str.Invalid_configuration_file__s__it_looks_like_UTF16_n
call fcn.00443500
add esp, 8
jmp 0x4047be
call fcn.006880a0
mov ebx, eax
call fcn.00687cf0
push ebx
push eax
push edi
push str.Error_accessing_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
mov eax, dword [esp + 4]
push eax
call fcn.006881c0
jmp 0x4047d1
call fcn.006880a0
mov ebx, eax
call fcn.00687cf0
push ebx
push eax
push edi
push str.Error_reading_configuration_file__s__syserr__d__s__n
call fcn.00443500
add esp, 0x10
mov eax, dword [esp + 4]
push eax
call fcn.006881c0
add esp, 4
push esi
call fcn.00490e50
add esp, 4
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.0068f43b
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret