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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x23c
mov eax, dword [0xa45214]
xor eax, esp
mov dword [esp + 0x238], eax
mov ecx, dword [ecx + 0x38]
xor eax, eax
push ebx
push esi
mov ebx, edx
mov dword [esp + 0x28], eax
push edi
mov dword [esp + 0x14], ebx
mov esi, eax
mov dword [esp + 0x10], eax
call fcn.00a221d7
mov edi, eax
test edi, edi
je 0xa2303d
mov esi, edi
xor edx, edx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, dx
jne 0xa23022
sub esi, ecx
sar esi, 1
cmp esi, 0x104
jae 0xa34cda
cmp byte [0xa45044], 0
je 0xa23067
test edi, edi
je 0xa3724e
push 4
push 0xa23468
push edi
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0xa3724e
xor eax, eax
push 0x208
push eax
lea eax, [esp + 0x40]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [esp + 0x38]
mov edx, 0x104
push edi
call fcn.00a21417
push 0x5c
lea ecx, [esp + 0x3c]
pop edi
push 0x2f
pop edx
call fcn.00a22200
test eax, eax
jne 0xa30d46
push 0x3a
pop eax
mov word [esp + 0x32], ax
lea edx, [esp + 0x30]
xor eax, eax
mov word [esp + 0x30], di
lea ecx, [esp + 0x38]
mov word [esp + 0x34], ax
call fcn.00a22e0e
cmp eax, esi
sbb eax, eax
xor ecx, ecx
neg eax
mov word [esp + 0x32], cx
mov dword [esp + 0x20], eax
test eax, eax
je 0xa26307
mov edx, edi
lea ecx, [esp + 0x38]
call fcn.00a22aea
mov esi, eax
test esi, esi
je 0xa356aa
add esi, 2
xor edi, edi
cmp word [esi], di
je 0xa356cf
mov ecx, 0xa22b00
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
je 0xa36103
sbb eax, eax
or eax, 1
test eax, eax
je 0xa356cf
mov ecx, 0xa22b04
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
je 0xa3612c
sbb eax, eax
or eax, 1
test eax, eax
je 0xa356cf
mov ecx, 0x410
call fcn.00a213cb
mov edi, eax
test edi, edi
je 0xa37271
mov edx, dword [ebp + 8]
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call fcn.00a21417
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x38]
mov eax, esi
sub eax, ecx
xor ecx, ecx
sar eax, 1
push 0xa22b00
mov word [ebx + eax*2], cx
mov ecx, ebx
call fcn.00a22c30
push ebx
mov edx, 0x208
mov ecx, edi
call fcn.00a22e4b
test eax, eax
jne 0xa37282
mov ecx, edi
call fcn.00a22b0f
push 0x5c
pop ecx
cmp word [eax], cx
je 0xa231b6
push 0xa22ef8
mov edx, 0x208
mov ecx, edi
call fcn.00a22c30
push esi
mov edx, 0x208
mov ecx, edi
call fcn.00a22c30
mov edx, edi
xor esi, esi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, si
jne 0xa231ca
sub edx, ecx
mov ecx, edi
sar edx, 1
lea edx, [edx*2 + 2]
call fcn.00a2217a
mov esi, eax
mov dword [esp + 0x18], esi
test esi, esi
je 0xa37271
push 0x5c
pop eax
mov edx, eax
mov ecx, esi
call fcn.00a22aea
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], ecx
je 0xa26310
push ebx
call dword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_NeedCurrentDirectoryForExePathW]
mov ebx, eax
test ebx, ebx
je 0xa356bd
mov ecx, esi
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0xa2322f
sub ecx, edx
sar ecx, 1
lea edi, [ecx + 2]
mov eax, dword [esp + 0x10]
add edi, 2
test eax, eax
jne 0xa26354
lea ecx, [edi + edi]
call fcn.00a213cb
mov esi, eax
test esi, esi
je 0xa37271
test ebx, ebx
je 0xa2328f
push 0xa22f00
mov edx, edi
mov ecx, esi
call fcn.00a22c30
push dword [esp + 0x18]
mov edx, edi
mov ecx, esi
call fcn.00a22c30
push 0xa22f00
mov edx, edi
mov ecx, esi
call fcn.00a22c30
cmp dword [esp + 0x20], 0
je 0xa26323
mov ecx, esi
call fcn.00a22f97
push 1
mov edx, 0xa22efc
mov ecx, esi
call fcn.00a21e6a
mov edi, eax
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0xa232be
sub eax, edx
sar eax, 1
mov dword [esp + 0x28], eax
cmp byte [0xa45044], bl
je 0xa36160
mov ecx, 0xa22ce0
call fcn.00a21d1b
mov esi, eax
test esi, esi
je 0xa36160
mov ecx, esi
call fcn.00a22f97
push 1
mov edx, 0xa22efc
mov ecx, esi
call fcn.00a21e6a
mov dword [esp + 0x18], eax
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0xa2330f
sub esi, ecx
mov ecx, edi
sar esi, 1
lea ebx, [esi + 1]
mov dword [esp + 0x24], ebx
call fcn.00a221d7
push eax
mov edx, ebx
mov ecx, edi
call fcn.00a21417
lea ecx, [edi + 2]
xor ebx, ebx
mov ax, word [edi]
add edi, 2
cmp ax, bx
jne 0xa2333b
sub edi, ecx
mov ecx, dword [esp + 0x10]
sar edi, 1
call fcn.00a22b0f
push 0x5c
pop ecx
cmp word [eax], cx
je 0xa23363
mov esi, dword [esp + 0x24]
xor ebx, ebx
inc ebx
inc edi
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp word [eax], cx
je 0xa2553d
mov eax, dword [esp + 0x28]
inc eax
add eax, edi
mov dword [esp + 0x24], eax
cmp eax, 0x104
ja 0xa372ae
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
push edi
call fcn.00a21417
test ebx, ebx
je 0xa25553
lea edi, [edi + esi*2]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], edi
test ebx, ebx
je 0xa233bf
mov edx, dword [ebp + 8]
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.00a22c30
push dword [esp + 0x1c]
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00a22c30
mov ecx, esi
call fcn.00a221d7
mov edx, dword [ebp + 8]
mov ecx, esi
push eax
call fcn.00a21417
mov ebx, esi
xor edx, edx
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
cmp ax, dx
jne 0xa233e6
sub ebx, ecx
push 0x3a
pop eax
sar ebx, 1
cmp word [esi + 2], ax
jne 0xa2340a
mov cx, word [esi]
call fcn.00a22cf5
test eax, eax
je 0xa23461
mov ecx, dword [esp + 0x1c]
push 0x2e
pop edx
call fcn.00a22aea
test eax, eax
jne 0xa235aa
mov esi, dword [esp + 0x1c]
mov ecx, esi
push 0x2a
pop edx
call fcn.00a22200
test eax, eax
jne 0xa25547
push 0x3f
pop edx
mov ecx, esi
call fcn.00a22200
test eax, eax
jne 0xa25547
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
push eax
push 0xa263d0
push ebx
call fcn.00a263db
test eax, eax
jne 0xa23472
xor ebx, ebx
jmp 0xa2330a
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp word [eax], cx
je 0xa23461
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x2c]
jne 0xa23482
mov eax, dword [esp + 0x24]
sub ecx, edx
sar ecx, 1
add eax, ecx
cmp eax, 0x104
ja 0xa2641b
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
push 1
push esi
push ebx
call fcn.00a263db
test eax, eax
je 0xa2640d
mov edi, dword [sym.imp.msvcrt.dll__wcsicmp]
push 0xa235a0
push esi
call edi
pop ecx
pop ecx
test eax, eax
je 0xa283d1
push 0xa23500
push esi
call edi
pop ecx
pop ecx
test eax, eax
je 0xa283d1
xor eax, eax
inc eax
mov ecx, dword [esp + 0x244]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00a213b9
mov esp, ebp
pop ebp
ret 4
xor ecx, ecx
cmp word [eax + 2], cx
je 0xa2341e
mov edx, dword [ebp + 8]
mov ecx, esi
push 1
call fcn.00a22f09
test eax, eax
je 0xa25559
push 0x2e
pop edx
mov ecx, esi
call fcn.00a22aea
mov edi, eax
test edi, edi
je 0xa356c6
mov esi, dword [sym.imp.msvcrt.dll__wcsicmp]
push 0xa23500
push edi
call esi
pop ecx
pop ecx
test eax, eax
je 0xa283d1
push 0xa235a0
push edi
call esi
neg eax
pop ecx
sbb eax, eax
pop ecx
add eax, 2
jmp 0xa234e9
xor eax, eax
jmp 0xa234e9
cmp dword [esp + 0x20], ecx
jne 0xa2d5eb
mov dword [0xa450e4], 0x2331
jmp 0xa25536
inc esi
jmp 0xa233a1
cmp dword [esp + 0x20], 0
jne 0xa2d606
mov eax, dword [0xa450e4]
cmp eax, 2
je 0xa2341e
jmp 0xa30d51
lea esi, [esp + 0x38]
jmp 0xa230f4
mov ecx, 0xa245fc
call fcn.00a21d1b
mov dword [esp + 0x10], eax
jmp 0xa23217
mov eax, dword [esp + 0x10]
test eax, eax
je 0xa2329a
test ebx, ebx
je 0xa26345
push 0xa22efc
mov edx, edi
mov ecx, esi
call fcn.00a22c30
mov eax, dword [esp + 0x10]
push eax
mov edx, edi
mov ecx, esi
call fcn.00a22c30
jmp 0xa2329a
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0xa26359
sub ecx, edx
sar ecx, 1
add edi, ecx
jmp 0xa23250
mov eax, dword [0xa450e4]
cmp eax, 2
jne 0xa372c3
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0xa2641b
xor eax, eax
cmp word [esi], ax
jne 0xa2347d
jmp 0xa23461
push 2
pop eax
jmp 0xa234e9
mov eax, dword [0xa450e4]
test eax, eax
je 0xa25547
cmp eax, 2
je 0xa25547
jmp 0xa25536
mov eax, dword [0xa450e4]
cmp eax, 5
jne 0xa25569
jmp 0xa235ca
mov word [eax], di
lea ecx, [eax + 2]
jmp 0xa23092
test eax, eax
jne 0xa23461
jmp 0xa2341e
mov dword [0xa450e4], 0x233f
jmp 0xa25536
push 0x3a
pop edx
lea ecx, [esp + 0x38]
call fcn.00a22200
mov esi, eax
jmp 0xa230f1
xor esi, esi
mov edi, esi
jmp 0xa23241
mov edi, dword [esp + 0x10]
jmp 0xa25564
cmp byte [0xa45044], 0
je 0xa25547
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0xa3729f
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
push 0x15
pop ecx
cmp eax, ecx
jne 0xa25547
jmp 0xa36155
test dx, dx
je 0xa36125
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0xa23112
add eax, 4
add ecx, 4
test dx, dx
jne 0xa23106
mov eax, edi
jmp 0xa23117
test dx, dx
je 0xa3614e
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0xa23132
add eax, 4
add ecx, 4
test dx, dx
jne 0xa23126
mov eax, edi
jmp 0xa23137
mov dword [0xa450e4], ecx
jmp 0xa3727b
mov esi, 0xa38628
jmp 0xa232f8