Function at 0x10021320
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1009338b
mov eax, dword fs:[0]
push eax
sub esp, 0x684
mov eax, dword [0x100d7294]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x380], ecx
mov ecx, dword [ebp + 8]
call fcn.10022070
movzx eax, al
test eax, eax
jne 0x10021375
mov ecx, dword [ebp + 0xc]
call fcn.10022070
movzx ecx, al
test ecx, ecx
jne 0x10021375
cmp dword [ebp + 0x10], 0
jne 0x1002137c
xor al, al
jmp 0x10021abe
push 0x208
push 0
lea edx, [ebp - 0x218]
push edx
call fcn.100672b0
add esp, 0xc
mov ecx, dword [ebp + 8]
call fcn.10006fc0
push eax
push 0x208
lea eax, [ebp - 0x218]
push eax
call fcn.1001c280
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov ecx, dword [ebp + 8]
call fcn.10006fc0
mov dword [ebp - 0x310], eax
mov edx, dword [ebp - 0x310]
add edx, 2
mov dword [ebp - 0x388], edx
mov eax, dword [ebp - 0x310]
mov cx, word [eax]
mov word [ebp - 0x316], cx
add dword [ebp - 0x310], 2
cmp word [ebp - 0x316], 0
jne 0x100213d6
mov edx, dword [ebp - 0x310]
sub edx, dword [ebp - 0x388]
sar edx, 1
mov dword [ebp - 0x384], edx
cmp dword [ebp - 0x384], 1
jb 0x10021427
mov ecx, dword [ebp + 8]
call fcn.10006fc0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1002142e
xor al, al
jmp 0x10021abe
mov dword [ebp - 0x314], 0
lea eax, [ebp - 0x314]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x380]
call fcn.100220e0
test eax, eax
jne 0x1002145d
xor al, al
jmp 0x10021abe
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x348]
call fcn.10004a20
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0x10]
add ecx, 0x34
push ecx
mov edx, dword [ebp + 0x10]
add edx, 0x28
push edx
lea eax, [ebp - 0x348]
push eax
mov ecx, dword [ebp - 0x314]
push ecx
lea ecx, [ebp - 0x309]
call fcn.1003aee0
movzx edx, al
test edx, edx
jne 0x100214b0
mov dword [ebp - 0x344], 1
jmp 0x100214ba
mov dword [ebp - 0x344], 0
mov al, byte [ebp - 0x344]
mov byte [ebp - 0x30a], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x348]
call fcn.10006090
movzx ecx, byte [ebp - 0x30a]
test ecx, ecx
je 0x100215eb
call fcn.10052b20
mov dword [ebp - 0x34c], eax
push 1
mov edx, dword [ebp - 0x34c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x34c]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 0x37c], al
cmp byte [ebp - 0x37c], 1
je 0x1002151b
jmp 0x100215e4
push 0x1009e300
lea ecx, [ebp - 0x290]
call fcn.10004fd0
mov dword [ebp - 4], 1
push 0x1009e374
lea ecx, [ebp - 0x2a8]
call fcn.10004fd0
mov byte [ebp - 4], 2
call fcn.10052b20
mov dword [ebp - 0x350], eax
mov eax, dword [ebp + 0xc]
push eax
push 0x1009e378
push 0xe9
lea ecx, [ebp - 0x290]
push ecx
lea edx, [ebp - 0x2a8]
push edx
lea ecx, [ebp - 0x430]
call fcn.10005660
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x378]
mov dword [ebp - 0x374], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x374]
call fcn.100117d0
mov ecx, eax
call fcn.10011820
push eax
mov ecx, dword [ebp - 0x350]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x350]
mov eax, dword [edx + 0x1c]
call eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x430]
call fcn.100065c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a8]
call fcn.100062e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x290]
call fcn.100062e0
xor al, al
jmp 0x10021abe
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x320]
call fcn.10004a20
mov dword [ebp - 4], 4
mov edx, dword [ebp + 0x10]
add edx, 0x10
push edx
lea eax, [ebp - 0x320]
push eax
mov ecx, dword [ebp - 0x314]
push ecx
lea ecx, [ebp - 0x309]
call fcn.1003b3b0
movzx edx, al
test edx, edx
jne 0x10021637
mov dword [ebp - 0x31c], 1
jmp 0x10021641
mov dword [ebp - 0x31c], 0
mov al, byte [ebp - 0x31c]
mov byte [ebp - 0x30b], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x320]
call fcn.10006090
movzx ecx, byte [ebp - 0x30b]
test ecx, ecx
je 0x10021772
call fcn.10052b20
mov dword [ebp - 0x324], eax
push 1
mov edx, dword [ebp - 0x324]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x324]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 0x370], al
cmp byte [ebp - 0x370], 1
je 0x100216a2
jmp 0x1002176b
push 0x1009e3e0
lea ecx, [ebp - 0x230]
call fcn.10004fd0
mov dword [ebp - 4], 5
push 0x1009e3dc
lea ecx, [ebp - 0x278]
call fcn.10004fd0
mov byte [ebp - 4], 6
call fcn.10052b20
mov dword [ebp - 0x328], eax
mov eax, dword [ebp + 0xc]
push eax
push 0x1009e458
push 0xf0
lea ecx, [ebp - 0x230]
push ecx
lea edx, [ebp - 0x278]
push edx
lea ecx, [ebp - 0x4c8]
call fcn.10005660
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x394]
mov dword [ebp - 0x38c], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38c]
call fcn.100117d0
mov ecx, eax
call fcn.10011820
push eax
mov ecx, dword [ebp - 0x328]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x328]
mov eax, dword [edx + 0x1c]
call eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4c8]
call fcn.100065c0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x278]
call fcn.100062e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.100062e0
xor al, al
jmp 0x10021abe
mov ecx, dword [ebp + 0x10]
add ecx, 0x1c
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x314]
push eax
lea ecx, [ebp - 0x309]
call fcn.1003ad10
movzx ecx, al
test ecx, ecx
jne 0x1002189e
call fcn.10052b20
mov dword [ebp - 0x32c], eax
push 1
mov edx, dword [ebp - 0x32c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x32c]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 0x390], al
cmp byte [ebp - 0x390], 1
je 0x100217ce
jmp 0x10021897
push 0x1009e4d0
lea ecx, [ebp - 0x248]
call fcn.10004fd0
mov dword [ebp - 4], 8
push 0x1009e454
lea ecx, [ebp - 0x260]
call fcn.10004fd0
mov byte [ebp - 4], 9
call fcn.10052b20
mov dword [ebp - 0x330], eax
mov eax, dword [ebp + 0xc]
push eax
push 0x1009e548
push 0xf8
lea ecx, [ebp - 0x248]
push ecx
lea edx, [ebp - 0x260]
push edx
lea ecx, [ebp - 0x560]
call fcn.10005660
mov dword [ebp - 0x398], eax
mov eax, dword [ebp - 0x398]
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x354]
call fcn.100117d0
mov ecx, eax
call fcn.10011820
push eax
mov ecx, dword [ebp - 0x330]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x330]
mov eax, dword [edx + 0x1c]
call eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x560]
call fcn.100065c0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x260]
call fcn.100062e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.100062e0
xor al, al
jmp 0x10021abe
mov ecx, dword [ebp + 0x10]
add ecx, 0x48
push ecx
lea ecx, [ebp - 0x309]
call fcn.1003b260
movzx edx, al
test edx, edx
jne 0x100219bf
call fcn.10052b20
mov dword [ebp - 0x334], eax
push 1
mov eax, dword [ebp - 0x334]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x334]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 0x358], al
cmp byte [ebp - 0x358], 1
je 0x100218ef
jmp 0x100219b8
push 0x1009e5d8
lea ecx, [ebp - 0x2d8]
call fcn.10004fd0
mov dword [ebp - 4], 0xb
push 0x1009e4cc
lea ecx, [ebp - 0x2c0]
call fcn.10004fd0
mov byte [ebp - 4], 0xc
call fcn.10052b20
mov dword [ebp - 0x338], eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.General_App_Mode_Identify_Failed_Window_Information___App_Name:
push 0xff
lea edx, [ebp - 0x2d8]
push edx
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x5f8]
call fcn.10005660
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x35c]
mov dword [ebp - 0x360], ecx
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x360]
call fcn.100117d0
mov ecx, eax
call fcn.10011820
push eax
mov edx, dword [ebp - 0x338]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x338]
mov edx, dword [eax + 0x1c]
call edx
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x5f8]
call fcn.100065c0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x2c0]
call fcn.100062e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2d8]
call fcn.100062e0
xor al, al
jmp 0x10021abe
call fcn.10052b20
mov dword [ebp - 0x33c], eax
push 1
mov eax, dword [ebp - 0x33c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x33c]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 0x364], al
cmp byte [ebp - 0x364], 1
je 0x100219f3
jmp 0x10021abc
push str.d:jenkins.jenkinsworkspacedolphin_gamemodegamemodeldsmodeidentifyldsmodeidentifygeneral_mode_identify.cc
lea ecx, [ebp - 0x308]
call fcn.10004fd0
mov dword [ebp - 4], 0xe
push 0x1009e544
lea ecx, [ebp - 0x2f0]
call fcn.10004fd0
mov byte [ebp - 4], 0xf
call fcn.10052b20
mov dword [ebp - 0x340], eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.General_App_Mode_Identify_Success__App_Name:
push 0x104
lea edx, [ebp - 0x308]
push edx
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x690]
call fcn.10005660
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x368]
mov dword [ebp - 0x36c], ecx
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x36c]
call fcn.100117d0
mov ecx, eax
call fcn.10011820
push eax
mov edx, dword [ebp - 0x340]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x340]
mov edx, dword [eax + 0x1c]
call edx
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x690]
call fcn.100065c0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2f0]
call fcn.100062e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x308]
call fcn.100062e0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005fbb2
mov esp, ebp
pop ebp
ret 0xc