Function at 0x10037fe0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010eb81
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x1015a4dc]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], 0
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jne 0x1003802c
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebx
lea ecx, [ebp + 0xc]
call fcn.10004110
push ebx
mov dword [ebp - 4], 0
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
or esi, 0xffffffff
test eax, eax
je 0x10038159
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov byte [ebp - 4], 1
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x1003806a
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x10038080
call fcn.10005050
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x10038291
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x10], 1
lea esi, [eax + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp + 8], esi
mov dword [ebp - 0x14], eax
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x18], edi
lea edx, [edi + 1]
test edx, edx
js 0x1003829b
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x100380c6
push edx
lea ecx, [ebp + 8]
call fcn.100053e0
mov esi, dword [ebp + 8]
add edi, edi
push edi
push dword [ebp - 0x14]
push edi
push esi
call fcn.10038d30
lea ecx, [edi + esi]
add esp, 0x10
test ecx, ecx
jne 0x100380ef
call fcn.100b0427
mov dword [eax], 0x16
call fcn.100b0300
jmp 0x100380f8
mov ax, word [0x1011ab90]
mov word [ecx], ax
mov eax, dword [ebp - 0x18]
inc eax
cmp eax, dword [esi - 8]
jg 0x1003829b
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp + 0xc]
call fcn.1000e8a0
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10038138
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10038140
sub ecx, edx
sar ecx, 1
push ecx
push ebx
lea ecx, [ebp + 0xc]
call fcn.1000e9b0
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1003816d
xor edi, edi
jmp 0x1003825c
call fcn.10005050
mov ecx, eax
test ecx, ecx
je 0x100382a5
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp + 8], esi
mov byte [ebp - 4], 2
call fcn.10023f20
mov ecx, eax
call fcn.10019b90
push eax
push 0x1011ccc8
call fcn.10022930
add esp, 8
test al, al
je 0x100381eb
call fcn.10023f20
mov ecx, eax
call fcn.100198c0
mov edi, eax
call fcn.10023f20
mov ecx, eax
call fcn.100198b0
mov esi, eax
call fcn.10023f20
mov ecx, eax
call fcn.10019b90
push dword [edi]
push dword [esi]
push dword [eax]
lea eax, [ebp + 8]
push str.ex1_sex2_sval1_s
push eax
call fcn.1000f890
mov esi, dword [ebp + 8]
add esp, 0x14
push str.exec
call fcn.10024050
mov ecx, eax
call fcn.1000ad90
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x18], esp
mov dword [eax + 0x24], 0
push 0
push esi
push 0x1011d3f8
mov byte [ebp - 4], 3
call fcn.10024050
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.1000a980
push 0xffffffffffffffff
push 0
push 0
push 1
push 1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.10034700
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0
or esi, 0xffffffff
mov edi, eax
mov ecx, esi
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x1003825c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x1003827b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.10004420
push 0x80070057
call fcn.10004420
push 0x80004005
call fcn.10004420
int3