Function at 0x10018440
Capabilities:
Get file version info
Link many functions at runtime

Disassembly:
push ebp
lea ebp, [esp - 0x3a8]
sub esp, 0x428
mov eax, dword [0x1003efe0]
xor eax, ebp
mov dword [ebp + 0x3a4], eax
cmp dword [0x10040b58], 0
push ebx
mov ebx, dword [ebp + 0x3b0]
push esi
push edi
je 0x10018477
mov eax, 1
jmp 0x100187c9
push 0x10033974
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
je 0x100187c7
push 0x208
lea eax, [ebp - 0x72]
push 0
push eax
mov word [ebp - 0x74], 0
call fcn.100197a0
add esp, 0xc
lea esi, [ebp - 0x74]
call fcn.10018360
test eax, eax
jne 0x100184cf
test ebx, ebx
je 0x100187c7
push 0x104
push ebx
mov ecx, esi
push 0x104
push ecx
call fcn.10019b40
add esp, 0x10
push 0x208
lea edx, [ebp + 0x19a]
push 0
push edx
mov word [ebp + 0x198], 0
call fcn.100197a0
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 0xc
push str.SetDllDirectoryW
push edi
call esi
test eax, eax
mov dword [0x10040b88], eax
je 0x1001852f
lea ecx, [ebp - 0x74]
push ecx
call eax
cmp dword [0x10040b88], 0
je 0x1001852f
push str.bdch.dll
lea edx, [ebp + 0x198]
push 0x104
push edx
call fcn.1001baee
add esp, 0xc
jmp 0x1001855d
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp + 0x198]
push 0x104
push ecx
call fcn.1001baee
push str.bdch.dll
lea edx, [ebp + 0x198]
push 0x104
push edx
call fcn.1001ba74
add esp, 0x18
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea eax, [ebp + 0x198]
push eax
call edi
test eax, eax
mov dword [0x10040b8c], eax
jne 0x100185aa
cmp dword [0x10040b88], eax
jne 0x100187c7
push eax
push eax
push 3
push eax
push 3
push SysReAllocStringLen
lea ecx, [ebp + 0x198]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x100187c7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [ebp - 0x74]
push edx
lea eax, [ebp + 0x198]
push 0x104
push eax
call fcn.1001baee
push str.bdsubmit.dll
lea ecx, [ebp + 0x198]
push 0x104
push ecx
call fcn.1001ba74
add esp, 0x18
lea edx, [ebp + 0x198]
push edx
call edi
mov dword [0x10040b90], eax
mov eax, dword [0x10040b88]
test eax, eax
je 0x100185f3
push 0
call eax
push str.bdsubmit.dll
lea eax, [ebp + 0x198]
push 0x104
push eax
call fcn.1001baee
mov eax, dword [0x10040b90]
add esp, 0xc
test eax, eax
je 0x100187c7
push 0x104
lea ecx, [ebp + 0x198]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp + 0x198]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
test edi, edi
mov dword [ebp - 0x7c], edi
je 0x100187c7
call fcn.10019e70
mov ecx, dword [ebp - 0x80]
mov ebx, esp
push ebx
push edi
push ecx
lea edx, [ebp + 0x198]
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x100187c7
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x78]
push ecx
push str.StringFileInfo040904b0FileVersion
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x1001869c
lea edx, [ebp - 0x7c]
push edx
lea eax, [ebp - 0x78]
push eax
push str.StringFileInfo040904e4FileVersion
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x100187c7
mov edx, dword [ebp - 0x78]
mov eax, dword [0x10040b90]
xor ecx, ecx
cmp word [edx + 2], 0x31
push str.SBATCH_Create
setne cl
push eax
add ecx, 0xb
mov dword [0x10040b54], ecx
call esi
test eax, eax
mov dword [0x10040b80], eax
je 0x100187c7
mov ecx, dword [0x10040b90]
push str.SBATCH_Close
push ecx
call esi
test eax, eax
mov dword [0x10040b7c], eax
je 0x100187c7
mov edx, dword [0x10040b90]
push str.SBATCH_BeginSubmission
push edx
call esi
test eax, eax
mov dword [0x10040b78], eax
je 0x100187c7
mov eax, dword [0x10040b90]
push str.SBATCH_EndSubmission
push eax
call esi
test eax, eax
mov dword [0x10040b74], eax
je 0x100187c7
mov ecx, dword [0x10040b90]
push str.SBATCH_AddGroup
push ecx
call esi
test eax, eax
mov dword [0x10040b70], eax
je 0x100187c7
mov edx, dword [0x10040b90]
push str.SBATCH_AddParameter
push edx
call esi
test eax, eax
mov dword [0x10040b6c], eax
je 0x100187c7
mov eax, dword [0x10040b90]
push str.FILEGROUP_Create
push eax
call esi
test eax, eax
mov dword [0x10040b68], eax
je 0x100187c7
mov ecx, dword [0x10040b90]
push str.FILEGROUP_Add
push ecx
call esi
test eax, eax
mov dword [0x10040b64], eax
je 0x100187c7
mov edx, dword [0x10040b90]
push str.FILEGROUP_Close
push edx
call esi
test eax, eax
mov dword [0x10040b60], eax
je 0x100187c7
mov eax, dword [0x10040b90]
push str.SBATCH_RunBatch
push eax
call esi
test eax, eax
mov dword [0x10040b5c], eax
je 0x100187c7
mov ecx, dword [0x10040b8c]
push str.EnableCrashHandlerAdv
push ecx
call esi
mov dword [0x10040b84], eax
mov eax, 1
mov dword [0x10040b58], eax
jmp 0x100187c9
xor eax, eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3a4]
xor ecx, ebp
call fcn.10019da6
add ebp, 0x3a8
mov esp, ebp
pop ebp
ret