Function at 0x10003390
Capabilities:
Check if file exists
Delete file
Link many functions at runtime
Set file attributes

Disassembly:
sub esp, 0x214
mov eax, dword [0x1001a4e0]
xor eax, esp
mov dword [esp + 0x210], eax
mov eax, dword [0x10015b28]
mov cl, byte [0x10015b2c]
push esi
push 0xff
lea edx, [esp + 0x15]
push 0
push edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], cl
call sub.ntdll.dll_memset
push 0x103
lea eax, [esp + 0x121]
push 0
push eax
mov byte [esp + 0x128], 0
call sub.ntdll.dll_memset
mov edx, dword [0x1001b490]
add esp, 0x18
push 0x104
lea ecx, [esp + 0x114]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x10015b24
lea eax, [esp + 0x114]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [esp + 0x10]
lea esi, [esp + 0x110]
mov ecx, eax
mov edx, 0x100
sub esi, ecx
lea esp, [esp]
lea ecx, [edx + 0x7ffffefe]
test ecx, ecx
je 0x1000344b
mov cl, byte [esi + eax]
test cl, cl
je 0x1000344b
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x10003430
jmp 0x1000344f
test edx, edx
jne 0x10003450
dec eax
push str.BAPI.dll
push 0x104
lea edx, [esp + 0x118]
push edx
mov byte [eax], 0
call fcn.10001700
push str.BAPIDRV.sys
push 0x104
lea eax, [esp + 0x14]
push eax
call fcn.10001700
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x100034a8
push 0x80
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [0x1001b490]
push ecx
lea edx, [esp + 0x114]
push 0x6a
push edx
call fcn.100013f0
add esp, 0xc
test eax, eax
jne 0x100034dd
xor eax, eax
pop esi
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.1000a6f5
add esp, 0x214
ret
lea eax, [esp + 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x100034c5
push ebx
push ebp
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Install
push esi
call edi
push str.InitEngine
push esi
mov ebp, eax
call edi
push str.InitRegEngine
push esi
mov dword [esp + 0x18], eax
call edi
push str.UninitEngine
push esi
mov dword [esp + 0x1c], eax
call edi
push str.UninitRegEngine
push esi
mov ebx, eax
call edi
test ebp, ebp
je 0x100036ae
test ebx, ebx
je 0x100036ae
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100036ae
test eax, eax
je 0x100036ae
mov ecx, dword [0x1001b490]
push ecx
lea edx, [esp + 0x20]
push 0x6b
push edx
call fcn.100013f0
add esp, 0xc
test eax, eax
je 0x100036ae
push str..BAPI
xor esi, esi
call fcn.100015f0
mov edi, eax
lea eax, [esp + 0x20]
push eax
call fcn.10003280
add esp, 8
cmp eax, 0xfffffffe
je 0x10003669
test edi, edi
je 0x100035a3
test eax, eax
jle 0x100035a3
mov edi, 1
jmp 0x100035a5
xor edi, edi
call fcn.100013d0
test eax, eax
je 0x100035bb
push str.BAPIDRV
call fcn.10001a60
add esp, 4
push 0
call ebp
neg eax
sbb eax, eax
neg eax
test edi, edi
je 0x100035d7
neg eax
sbb eax, eax
and eax, 2
mov esi, eax
jmp 0x10003669
test eax, eax
je 0x100035ec
push str..BAPI
call fcn.100015f0
add esp, 4
test eax, eax
jne 0x10003664
push 3
push 1
push 3
lea ecx, [esp + 0x24]
push str.BAPIDRV
push ecx
call fcn.10001c50
add esp, 0x14
test eax, eax
je 0x10003669
push str.BAPIDRV
call fcn.10001d80
add esp, 4
test eax, eax
jne 0x1000362a
push 0x10015ab0
call fcn.10001ee0
add esp, 4
test eax, eax
je 0x1000363b
push str..BAPI
call fcn.100015f0
add esp, 4
test eax, eax
jne 0x10003664
push 3
lea edx, [esp + 0x1c]
push str.BAPIDRV
push edx
call fcn.10001fc0
add esp, 0xc
test eax, eax
je 0x10003669
push str..BAPI
call fcn.100015f0
add esp, 4
test eax, eax
je 0x10003669
mov esi, 1
push 0x80
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp esi, 1
jne 0x100036aa
call dword [esp + 0x10]
test eax, eax
je 0x10003690
call ebx
test eax, eax
je 0x10003690
mov eax, esi
jmp 0x10003692
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov esi, ecx
cmp esi, 1
jne 0x100036aa
call fcn.10002480
call fcn.100050d0
mov eax, esi
jmp 0x100036b0
xor eax, eax
mov ecx, dword [esp + 0x220]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.1000a6f5
add esp, 0x214
ret