Function at 0x407ba0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41a9e8
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
mov eax, dword [0x42465c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
lea esi, [ebp - 0x10]
mov dword [edi], ebx
mov byte [edi + 4], bl
call fcn.00406210
push 0x13
mov dword [ebp - 4], ebx
push str.AirportTesting.ini
mov ebx, esi
call fcn.00401e60
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40803b
lea ecx, [ebp - 0x18]
push ecx
mov ecx, str.Testing
call fcn.004016a0
lea edx, [ebp - 0x14]
push edx
mov ecx, str.Config
mov byte [ebp - 4], 1
call fcn.004016a0
lea eax, [ebp - 0x14]
mov edx, esi
push eax
lea ecx, [ebp - 0x18]
lea esi, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00408120
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407c51
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407c74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x48]
mov ecx, 0x420c28
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407ca6
test dx, dx
je 0x407ca2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407ca6
add eax, 4
add ecx, 4
test dx, dx
jne 0x407c80
xor eax, eax
jmp 0x407cab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
lea edx, [ebp - 0x20]
mov byte [edi], cl
push edx
mov ecx, 0x420dd4
call fcn.004016a0
lea eax, [ebp - 0x1c]
push eax
mov ecx, str.Config
mov byte [ebp - 4], 6
call fcn.004016a0
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x44]
mov byte [ebp - 4], 7
call fcn.00408120
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407d0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407d2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x44]
mov ecx, 0x420c28
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407d5c
test dx, dx
je 0x407d58
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407d5c
add eax, 4
add ecx, 4
test dx, dx
jne 0x407d36
xor eax, eax
jmp 0x407d61
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
lea edx, [ebp - 0x28]
mov byte [edi + 1], cl
push edx
mov ecx, str.DisableAvoid
call fcn.004016a0
lea eax, [ebp - 0x24]
push eax
mov ecx, str.Config
mov byte [ebp - 4], 0xb
call fcn.004016a0
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x40]
mov byte [ebp - 4], 0xc
call fcn.00408120
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407dc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407de5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x40]
mov ecx, 0x420c28
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407e16
test dx, dx
je 0x407e12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407e16
add eax, 4
add ecx, 4
test dx, dx
jne 0x407df0
xor eax, eax
jmp 0x407e1b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
lea edx, [ebp - 0x30]
mov byte [edi + 2], cl
push edx
mov ecx, str.DisableFunshionSignChecking
call fcn.004016a0
lea eax, [ebp - 0x2c]
push eax
mov ecx, str.Config
mov byte [ebp - 4], 0x10
call fcn.004016a0
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x11
call fcn.00408120
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407e7c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407e9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x3c]
mov ecx, 0x420c28
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407ecd
test dx, dx
je 0x407ec9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407ecd
add eax, 4
add ecx, 4
test dx, dx
jne 0x407ea7
xor eax, eax
jmp 0x407ed2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
lea edx, [ebp - 0x38]
mov byte [edi + 3], cl
push edx
mov ecx, str.AssumeIrchExisted
call fcn.004016a0
lea eax, [ebp - 0x34]
mov bl, 0x15
push eax
mov ecx, str.Config
mov byte [ebp - 4], bl
call fcn.004016a0
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x16
call fcn.00408120
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407f33
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x4c]
mov ecx, 0x420c28
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407f86
test dx, dx
je 0x407f82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407f86
add eax, 4
add ecx, 4
test dx, dx
jne 0x407f60
xor eax, eax
jmp 0x407f8b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
lea eax, [esi - 0x10]
mov byte [edi + 4], cl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407faf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407fd2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407ff5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408018
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40803b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, edi
call fcn.00408080
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408068
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret