Function at 0x3000d14b
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x498
mov eax, dword [0x30002838]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
xor esi, esi
push 0x24c
lea eax, [ebp - 0x458]
push esi
push eax
mov dword [ebp - 0x460], ecx
mov dword [ebp - 0x478], ebx
mov dword [ebp - 0x48c], edi
mov dword [ebp - 0x470], esi
mov dword [ebp - 0x464], esi
mov dword [ebp - 0x45c], esi
call sub.MSVCR80.dll_memset
mov ecx, dword [ebp + 0xc]
mov eax, ecx
and eax, 8
add esp, 0xc
cmp edi, esi
mov dword [ebp - 0x468], esi
mov dword [ebp - 0x484], esi
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x488], esi
mov dword [ebp - 0x47c], esi
je 0x3000d1ce
mov dword [edi], esi
test cl, 1
je 0x3000d1f3
mov dword [ebp - 0x484], 1
mov dword [ebp - 0x480], 9
mov dword [ebp - 0x490], 5
jmp 0x3000d207
mov dword [ebp - 0x480], 0x900
mov dword [ebp - 0x490], 0x500
push 4
pop eax
test al, cl
je 0x3000d214
mov dword [ebp - 0x464], eax
test cl, 0x20
je 0x3000d220
or dword [ebp - 0x464], 8
lea eax, [ebp - 0x45c]
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
call ebx
cmp eax, 0xffffffff
mov edi, dword [sym.imp.MSO.dll_Ordinal_295]
mov dword [ebp - 0x46c], eax
jne 0x3000d323
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x3000d323
push 0x104
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x478]
call dword [sym.imp.MSO.dll_Ordinal_6877]
lea eax, [ebp - 0x20c]
push eax
call edi
cmp eax, 2
jne 0x3000d284
cmp word [ebp - 0x20a], 0x3a
je 0x3000d2a5
cmp eax, 3
jne 0x3000d323
cmp word [ebp - 0x208], 0x5c
jne 0x3000d323
cmp word [ebp - 0x20a], 0x3a
jne 0x3000d323
and word [ebp - 0x204], si
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x20c]
push eax
mov word [ebp - 0x208], 0x5c
mov word [ebp - 0x206], 0x2a
call ebx
cmp eax, 0xffffffff
mov dword [ebp - 0x46c], eax
je 0x3000d323
mov ebx, dword [sym.imp.MSO.dll_Ordinal_6877]
and word [ebp - 0x208], si
push 0x104
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x20c]
push eax
call ebx
push 0xe
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x20c]
push eax
call ebx
and dword [ebp - 0x440], esi
and dword [ebp - 0x43c], esi
mov dword [ebp - 0x45c], 0x10
push dword [ebp - 0x478]
call edi
mov edi, eax
mov eax, dword [ebp - 0x460]
mov eax, dword [eax]
xor ebx, ebx
cmp dword [eax + 8], esi
jbe 0x3000d3b3
lea eax, [ebp - 0x498]
push eax
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax]
push ebx
call fcn.300079f2
mov ecx, dword [ebp - 0x498]
test dword [ecx + 0x64], 0x40000
jne 0x3000d3a5
lea eax, [ebp - 0x474]
push eax
push edi
push dword [ebp - 0x478]
call fcn.30008e59
cmp eax, dword [ebp - 0x468]
ja 0x3000d391
test esi, esi
je 0x3000d391
cmp dword [ebp - 0x468], 0
jne 0x3000d39d
test dword [esi + 0x64], 0x800000
je 0x3000d39d
mov esi, dword [ebp - 0x474]
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], edi
je 0x3000d3b3
mov eax, dword [ebp - 0x460]
mov eax, dword [eax]
inc ebx
cmp ebx, dword [eax + 8]
jb 0x3000d33c
cmp dword [ebp - 0x46c], 0xffffffff
jne 0x3000d3ce
cmp dword [ebp - 0x468], edi
je 0x3000d3e6
mov eax, 0x80004005
jmp 0x3000d67b
push dword [ebp - 0x46c]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x468], edi
jne 0x3000d551
mov eax, dword [ebp - 0x48c]
test eax, eax
je 0x3000d3f2
mov dword [eax], esi
test esi, esi
jne 0x3000d400
mov eax, 0x80070057
jmp 0x3000d67b
mov eax, dword [esi + 0x68]
xor edi, edi
inc edi
and eax, edi
je 0x3000d413
cmp dword [ebp - 0x484], 0
je 0x3000d3f6
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x46c], ebx
and dword [ebp - 0x46c], 0x80
je 0x3000d42c
test eax, eax
je 0x3000d3f6
movzx eax, word [esi + 0x64]
xor ecx, ecx
cmp eax, dword [ebp - 0x480]
mov eax, dword [ebp - 0x460]
setne cl
mov dword [eax + 0x18], ecx
movzx eax, byte [esi + 0x64]
movzx ecx, byte [esi + 0x65]
cmp eax, ecx
jbe 0x3000d496
mov ecx, esi
call fcn.30006bae
shr ebx, 7
and ebx, edi
cmp ebx, eax
je 0x3000d496
xor ebx, ebx
cmp dword [ebp - 0x46c], ebx
push edi
mov ecx, esi
je 0x3000d47a
push dword [ebp - 0x478]
call fcn.30007c94
jmp 0x3000d47f
call fcn.30007ddb
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x460]
mov dword [eax + 0x18], edi
mov dword [ebp - 0x47c], edi
jmp 0x3000d498
xor ebx, ebx
movzx eax, byte [esi + 0x64]
movzx ecx, byte [esi + 0x65]
cmp eax, ecx
ja 0x3000d4b2
cmp dword [ebp - 0x484], ebx
je 0x3000d4b2
mov dword [ebp - 0x47c], edi
mov ax, word [ebp - 0x480]
mov ecx, dword [ebp - 0x460]
mov word [esi + 0x64], ax
cmp dword [ecx + 0x18], ebx
jne 0x3000d4d9
mov eax, dword [esi + 0x68]
xor eax, dword [ebp - 0x464]
test al, 0xc
jne 0x3000d4d9
xor eax, eax
jmp 0x3000d4db
mov eax, edi
push dword [ebp - 0x490]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x68]
and eax, 0xfffffff3
or eax, dword [ebp - 0x464]
push esi
mov dword [esi + 0x68], eax
call fcn.30007eab
mov eax, dword [ebp - 0x460]
cmp dword [eax + 0x18], ebx
je 0x3000d53b
test byte [esi + 0x68], 1
jne 0x3000d53b
cmp dword [ebp - 0x484], ebx
jne 0x3000d53b
mov eax, dword [esi + 0x18]
push ebx
push edi
push ebx
push ebx
and eax, 0xfffffff6
push ebx
or eax, 6
push 0x30007510
mov ecx, esi
mov dword [esi + 0x18], eax
call fcn.30007a56
mov dword [ebp - 0x488], edi
mov dword [ebp - 0x47c], edi
mov eax, dword [esi + 0x68]
and eax, 0xfffffff3
or eax, dword [ebp - 0x464]
xor ebx, ebx
mov dword [esi + 0x68], eax
jmp 0x3000d648
xor ebx, ebx
push ebx
lea eax, [ebp - 0x474]
push eax
push dword [ebp - 0x468]
push dword [ebp - 0x478]
push esi
call fcn.3000cec5
cmp eax, ebx
mov dword [ebp - 0x470], eax
jl 0x3000d633
mov eax, dword [ebp - 0x474]
cmp eax, ebx
je 0x3000d633
cmp word [eax + 0x66], 2
mov edi, eax
je 0x3000d59b
test dword [eax + 0x64], 0x800000
je 0x3000d5b3
push 0x104
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x478]
call dword [sym.imp.MSO.dll_Ordinal_6877]
lea eax, [ebp - 0x474]
push eax
mov eax, dword [ebp + 0xc]
and al, 0x80
neg al
mov ecx, edi
sbb eax, eax
inc eax
inc eax
push eax
push dword [edi + 0x68]
lea eax, [ebp - 0x45c]
push dword [ebp - 0x480]
push eax
call fcn.3000c0c6
test eax, eax
jne 0x3000d5eb
mov dword [ebp - 0x470], 0x8007000e
cmp dword [ebp - 0x494], ebx
je 0x3000d608
mov eax, dword [ebp - 0x474]
mov dword [eax + 0x18], ebx
jmp 0x3000d604
mov byte [eax + 0x1a], 0xb
mov eax, dword [eax]
cmp eax, esi
jne 0x3000d5fe
mov ecx, dword [ebp - 0x48c]
cmp ecx, ebx
mov eax, dword [ebp - 0x474]
je 0x3000d61a
mov dword [ecx], eax
mov ecx, dword [eax + 0x68]
and ecx, 0xfffffff3
or ecx, dword [ebp - 0x464]
mov dword [ebp - 0x47c], 1
mov dword [eax + 0x68], ecx
cmp dword [ebp - 0x470], ebx
jne 0x3000d650
mov eax, dword [ebp - 0x460]
mov dword [eax + 0x18], 1
cmp dword [ebp - 0x488], ebx
jne 0x3000d659
cmp dword [ebp - 0x480], 9
jne 0x3000d675
cmp dword [ebp - 0x47c], ebx
je 0x3000d675
cmp dword [ebp + 0x14], ebx
je 0x3000d675
mov eax, dword [ebp - 0x460]
push dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [ebp - 0x470]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.30015018
leave
ret 0x10