Function at 0x431880
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x477497
mov eax, dword fs:[0]
push eax
sub esp, 0x8c0
mov eax, dword [0x4bb050]
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, ecx
mov dword [ebp - 0x748], esi
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x258]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x74c], eax
call fcn.00434790
push 1
lea ecx, [ebp - 0x250]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x254], 0
call fcn.00435000
cmp byte [ebp - 0x13c], 0
lea eax, [ebp - 0x24c]
cmove eax, dword [ebp - 0x250]
xor ecx, ecx
mov word [eax + 4], cx
mov dword [ebp - 4], ecx
lea ecx, [ebp - 0x134]
call fcn.00434790
push 1
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x130], 0
call fcn.00435000
cmp byte [ebp - 0x18], 0
lea eax, [ebp - 0x128]
cmove eax, dword [ebp - 0x12c]
xor ecx, ecx
mov word [eax + 4], cx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x134]
mov eax, dword [esi]
push ecx
lea ecx, [ebp - 0x258]
push ecx
mov eax, dword [eax + 0x20]
mov ecx, esi
push edi
call eax
test al, al
jne 0x431972
xor bh, bh
jmp 0x431f10
cmp byte [ebp - 0x13c], 0
lea eax, [ebp - 0x24c]
mov bh, 1
cmove eax, dword [ebp - 0x250]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x431dd2
shr eax, 4
not al
test bh, al
je 0x431dd2
cmp byte [esi + 0xd30], 0
lea ecx, [ebp - 0x8cc]
sete al
movzx eax, al
push eax
call fcn.0043db50
mov byte [ebp - 4], 2
lea eax, [ebp - 0x24c]
cmp byte [ebp - 0x13c], 0
lea ecx, [ebp - 0x8cc]
cmove eax, dword [ebp - 0x250]
add eax, 4
push eax
call fcn.00440c00
cmp dword [ebp - 0x774], 0
mov ecx, dword [ebp - 0x7b4]
setne al
test ecx, ecx
mov byte [esi + 0x2419], al
setne al
mov byte [esi + 0x2418], al
test ecx, ecx
je 0x431a32
call fcn.00432c00
push str.initruntime_safeapi
mov bl, al
call fcn.0043f7a0
mov cl, bl
call fcn.0043d3d0
push str.initruntime_safeapi
call fcn.0043f830
add esp, 8
push str.initruntime_SetProcessShortName
call fcn.0043f7a0
mov eax, dword [ebp - 0x74c]
add esp, 4
mov ecx, esi
push edi
mov byte [eax], 1
call fcn.004309b0
neg al
push str.initruntime_SetProcessShortName
sbb al, al
and al, bh
mov byte [ebp - 0x741], al
call fcn.0043f830
xor ebx, ebx
mov dword [ebp - 0x75c], fcn.0045dc48
add esp, 4
mov dword [ebp - 0x76c], ebx
mov dword [ebp - 0x760], ebx
mov dword [ebp - 0x758], fcn.00462345
mov dword [ebp - 0x754], fcn.0045dc2d
mov byte [ebp - 4], 3
xor edi, edi
xor esi, esi
mov dword [ebp - 0x768], ebx
mov dword [ebp - 0x764], ebx
mov dword [ebp - 0x750], edi
cmp dword [ebp - 0x83c], esi
jle 0x431c14
nop dword [eax + eax]
cmp dword [ebp - 0x80c], esi
jle 0x431c0e
lea ecx, [ebp - 0x740]
call fcn.00434790
lea ecx, [ebp - 0x618]
call fcn.00434790
lea ecx, [ebp - 0x4f4]
call fcn.00434790
lea ecx, [ebp - 0x3d0]
call fcn.00434790
push 0x54
lea eax, [ebp - 0x2ac]
push 0
push eax
call fcn.0045bd20
add esp, 0xc
mov dword [ebp - 0x61c], 0xffffffff
mov byte [ebp - 4], 4
lea eax, [ebp - 0x740]
mov ecx, dword [ebp - 0x810]
push eax
mov ecx, dword [ecx + esi*4]
call fcn.0043e490
lea eax, [ebp - 0x740]
push eax
lea ecx, [ebp - 0x76c]
call fcn.0043f320
mov edi, dword [ebp - 0x750]
inc edi
mov byte [ebp - 4], 3
cmp byte [ebp - 0x2b4], 0
mov dword [ebp - 0x750], edi
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431b7d
mov eax, dword [ebp - 0x3c8]
lea ecx, [ebp - 0x3c4]
cmp eax, ecx
je 0x431b7d
push eax
call fcn.0045dc2d
add esp, 4
cmp byte [ebp - 0x3d8], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431ba9
mov eax, dword [ebp - 0x4ec]
lea ecx, [ebp - 0x4e8]
cmp eax, ecx
je 0x431ba9
push eax
call fcn.0045dc2d
add esp, 4
cmp byte [ebp - 0x4fc], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431bd5
mov eax, dword [ebp - 0x610]
lea ecx, [ebp - 0x60c]
cmp eax, ecx
je 0x431bd5
push eax
call fcn.0045dc2d
add esp, 4
cmp byte [ebp - 0x624], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431c01
mov eax, dword [ebp - 0x738]
lea ecx, [ebp - 0x734]
cmp eax, ecx
je 0x431c01
push eax
call fcn.0045dc2d
add esp, 4
inc esi
cmp esi, dword [ebp - 0x83c]
jl 0x431ac0
mov ebx, dword [ebp - 0x76c]
xor esi, esi
test edi, edi
jle 0x431c46
nop word [eax + eax]
test esi, esi
js 0x431c2c
cmp esi, edi
jge 0x431c2c
mov eax, ebx
jmp 0x431c2e
xor eax, eax
push ecx
mov ecx, dword [ebp - 0x748]
push eax
call fcn.00432370
inc esi
add ebx, 0x4e8
cmp esi, edi
jl 0x431c20
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 5
call fcn.00433e60
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov byte [ebp - 4], 6
mov ebx, fcn.0045dc2d
mov ecx, dword [ebp - 0x7a0]
test ecx, ecx
je 0x431c8d
mov eax, dword [ebp - 0x788]
test eax, eax
push ecx
cmove eax, ebx
call eax
add esp, 4
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 0
mov dword [ebp - 0x798], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x7e0]
test ecx, ecx
je 0x431cde
mov eax, dword [ebp - 0x7c8]
test eax, eax
push ecx
cmove eax, ebx
call eax
add esp, 4
mov dword [ebp - 0x7e0], 0
mov dword [ebp - 0x7dc], 0
mov dword [ebp - 0x7d8], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x820]
mov dword [ebp - method.n_config::t_arraySection_class_t_configRuntimeFile::t_item_.virtual_0], vtable.n_config::t_arraySection_class_t_configRuntimeFile::t_item_.0
call fcn.00433890
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x810]
test ecx, ecx
je 0x431d3e
mov eax, dword [ebp - 0x7f8]
test eax, eax
push ecx
cmove eax, ebx
call eax
add esp, 4
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x808], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x868]
test ecx, ecx
je 0x431d99
mov eax, dword [ebp - 0x850]
test eax, eax
push ecx
cmove eax, ebx
call eax
add esp, 4
mov dword [ebp - 0x868], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x8cc]
mov dword [ebp - 0x864], 0
mov dword [ebp - 0x860], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
call fcn.0042e7c0
mov esi, dword [ebp - 0x748]
mov bh, byte [ebp - 0x741]
cmp byte [ebp - 0x18], 0
lea eax, [ebp - 0x128]
cmove eax, dword [ebp - 0x12c]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x431f10
shr eax, 4
not al
test al, 1
je 0x431f10
push ecx
lea ecx, [ebp - 0x850]
call fcn.0043e950
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x128]
cmp byte [ebp - 0x18], 0
lea ecx, [ebp - 0x850]
cmove eax, dword [ebp - 0x12c]
add eax, 4
push eax
call fcn.00440c00
lea eax, [esi + 0x1f90]
push eax
lea ecx, [ebp - 0x850]
call fcn.0043ef50
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.n_config::t_arraySection_class_t_configGameFile::t_item_.virtual_0], vtable.n_config::t_arraySection_class_t_configGameFile::t_item_.0
call fcn.00433890
mov byte [ebp - 4], 0xd
mov esi, fcn.0045dc2d
mov ecx, dword [ebp - 0x790]
test ecx, ecx
je 0x431e8c
mov eax, dword [ebp - 0x778]
test eax, eax
push ecx
cmove eax, esi
call eax
add esp, 4
mov dword [ebp - 0x790], 0
mov dword [ebp - 0x78c], 0
mov dword [ebp - 0x788], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x7ec]
test ecx, ecx
je 0x431ee7
mov eax, dword [ebp - 0x7d4]
test eax, eax
push ecx
cmove eax, esi
call eax
add esp, 4
mov dword [ebp - 0x7ec], 0
lea ecx, [ebp - 0x850]
mov dword [ebp - 0x7e8], 0
mov dword [ebp - 0x7e4], 0
mov dword [ebp - method.n_config::t_typeBase.virtual_0], vtable.n_config::t_typeBase.0
call fcn.0042e7c0
cmp byte [ebp - 0x18], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431f39
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x128]
cmp eax, ecx
je 0x431f39
push eax
call fcn.0045dc2d
add esp, 4
cmp byte [ebp - 0x13c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x431f65
mov ecx, dword [ebp - 0x250]
lea eax, [ebp - 0x24c]
cmp ecx, eax
je 0x431f65
push ecx
call fcn.0045dc2d
add esp, 4
mov al, bh
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.0045a329
mov esp, ebp
pop ebp
ret 8