Function at 0x10044821
Capabilities:
Check if file exists

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x25c
mov eax, dword [0x1010e2b0]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push esi
mov esi, edx
push edi
test esi, esi
je 0x10087b91
test ecx, ecx
je 0x10087b91
xor edx, edx
lea eax, [esp + 0x10]
push edx
push edx
push edx
push eax
push edx
push ecx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileExW]
mov ebx, eax
or edi, 0xffffffff
cmp ebx, edi
jne 0x10087e9c
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 2
jb 0x10087c7e
cmp eax, 3
ja 0x10087c70
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
mov esi, eax
cmp ecx, edi
je 0x10087d93
call fcn.10029fa0
mov ebx, eax
test ebx, ebx
je 0x10087d8d
cmp ebx, edi
je 0x100448f4
test ebx, ebx
je 0x100448f4
mov ecx, dword [0x1010e2c4]
call fcn.10029fa0
imul eax, eax, 0x364
push esi
add ebx, eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test ebx, ebx
je 0x100448fb
lea eax, [ebx + 0x10]
mov dword [eax], 2
mov eax, edi
mov ecx, dword [esp + 0x264]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1005cc20
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov eax, 0x1010eac0
jmp 0x100448d7
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
or edi, 0xffffffff
mov esi, eax
cmp ecx, edi
je 0x10087c41
call fcn.10029fa0
mov ebx, eax
test ebx, ebx
je 0x10087c3b
cmp ebx, edi
jne 0x10087c14
push esi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov eax, 0x1010eac0
mov dword [eax], 0x16
call sym.ucrtbase.dll__invalid_parameter_noinfo
jmp 0x100448dd
xor edx, edx
call fcn.10032a89
push 0
jmp 0x10087bf2
mov ecx, dword [0x1010e2c0]
xor edx, edx
call fcn.10032a89
push ebx
call sym.ucrtbase.dll__free_base
pop ecx
jmp 0x10087bbd
mov edx, ebx
call fcn.10032a89
test eax, eax
je 0x10087be4
mov ecx, ebx
call fcn.10031ad6
push 0
call sym.ucrtbase.dll__free_base
pop ecx
test ebx, ebx
je 0x10087bbd
mov ecx, dword [0x1010e2c4]
call fcn.10029fa0
imul eax, eax, 0x364
push esi
add ebx, eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test ebx, ebx
je 0x10087bc4
lea eax, [ebx + 0x10]
jmp 0x10087bc9
mov ecx, dword [0x1010e2c0]
mov edx, edi
call fcn.10032a89
test eax, eax
je 0x10087bbd
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
pop ecx
mov ebx, eax
pop ecx
mov ecx, dword [0x1010e2c0]
test ebx, ebx
je 0x10087bd9
jmp 0x10087bfa
cmp eax, 8
je 0x10087cc2
cmp eax, 0x12
je 0x10044889
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
mov esi, eax
cmp ecx, edi
je 0x10087e04
call fcn.10029fa0
mov ebx, eax
test ebx, ebx
je 0x10087dfe
cmp ebx, edi
jne 0x10087e6a
push esi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov eax, 0x1010eac0
mov dword [eax], 0x16
jmp 0x100448dd
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, dword [0x1010e2c0]
mov esi, eax
cmp ecx, edi
je 0x10087d00
call fcn.10029fa0
mov ebx, eax
test ebx, ebx
je 0x10087cfa
cmp ebx, edi
jne 0x10087d5f
push esi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov eax, 0x1010eac0
mov dword [eax], 0xc
jmp 0x100448dd
mov ecx, dword [0x1010e2c0]
mov edx, edi
call fcn.10032a89
test eax, eax
je 0x10087ce3
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
pop ecx
mov ebx, eax
pop ecx
mov ecx, dword [0x1010e2c0]
test ebx, ebx
jne 0x10087d45
xor edx, edx
call fcn.10032a89
push ebx
jmp 0x10087d3d
mov ecx, dword [0x1010e2c0]
xor edx, edx
call fcn.10032a89
push ebx
call sym.ucrtbase.dll__free_base
pop ecx
jmp 0x10087ce3
mov edx, ebx
call fcn.10032a89
test eax, eax
je 0x10087d2f
mov ecx, ebx
call fcn.10031ad6
push 0
call sym.ucrtbase.dll__free_base
pop ecx
test ebx, ebx
je 0x10087ce3
mov ecx, dword [0x1010e2c4]
call fcn.10029fa0
imul eax, eax, 0x364
push esi
add ebx, eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test ebx, ebx
je 0x10087cea
lea eax, [ebx + 0x10]
jmp 0x10087cef
mov ecx, dword [0x1010e2c0]
mov edx, edi
call fcn.10032a89
test eax, eax
je 0x100448f4
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
pop ecx
mov ebx, eax
pop ecx
mov ecx, dword [0x1010e2c0]
test ebx, ebx
jne 0x10087ddf
xor edx, edx
call fcn.10032a89
push ebx
jmp 0x10087dd4
mov ecx, dword [0x1010e2c0]
xor edx, edx
call fcn.10032a89
push ebx
call sym.ucrtbase.dll__free_base
pop ecx
jmp 0x100448f4
mov edx, ebx
call fcn.10032a89
test eax, eax
je 0x10087dc6
mov ecx, ebx
call fcn.10031ad6
push 0
call sym.ucrtbase.dll__free_base
pop ecx
jmp 0x100448b2
mov ecx, dword [0x1010e2c0]
mov edx, edi
call fcn.10032a89
test eax, eax
je 0x10087cab
push 0x364
push 2
call sym.ucrtbase.dll__calloc_base
pop ecx
mov ebx, eax
pop ecx
mov ecx, dword [0x1010e2c0]
test ebx, ebx
jne 0x10087e50
xor edx, edx
call fcn.10032a89
push ebx
jmp 0x10087e45
mov ecx, dword [0x1010e2c0]
xor edx, edx
call fcn.10032a89
push ebx
call sym.ucrtbase.dll__free_base
pop ecx
jmp 0x10087cab
mov edx, ebx
call fcn.10032a89
test eax, eax
je 0x10087e37
mov ecx, ebx
call fcn.10031ad6
push 0
call sym.ucrtbase.dll__free_base
pop ecx
test ebx, ebx
je 0x10087cab
mov ecx, dword [0x1010e2c4]
call fcn.10029fa0
imul eax, eax, 0x364
push esi
add ebx, eax
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test ebx, ebx
je 0x10087cb2
lea eax, [ebx + 0x10]
jmp 0x10087cb7
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
add eax, 0xffffff80
neg eax
sbb eax, eax
and eax, dword [esp + 0x10]
mov dword [esi], eax
call fcn.100d369f
lea ecx, [esp + 0x1c]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
call fcn.100d369f
lea ecx, [esp + 0x24]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
call fcn.100d369f
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x20], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esi + 0x24]
mov dword [esi + 0x1c], edx
push 0x104
push eax
call sym.ucrtbase.dll_wcscpy_s
add esp, 0xc
test eax, eax
je 0x10087f0a
push 0
push 0
push 0
push 0
push 0
call sym.ucrtbase.dll__invoke_watson
mov eax, ebx
jmp 0x100448df