Function at 0x409ef0
Capabilities:
Link many functions at runtime
Query environment variable

Disassembly:
endbr32
push esi
push edi
push ebx
push ebp
sub esp, 0x120
xor ebx, ebx
mov eax, dword [0x42c080]
lea esi, [esp + 8]
xor eax, esp
mov dword [esi + 0x114], eax
mov dword [esi - 4], ebx
push 0x105
push ebx
push esi
call fcn.004078a0
add esp, 0xc
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x110], str.msvcrt.dll
mov dword [esp + 0x114], str.ucrtbase.dll
cmp dword [0x450260], 0
je 0x40a314
push 0x450260
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x42c0a0], 0xffffffff
je 0x40a2e7
push 0x105
push esi
push str.SYSTEMROOT
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov edi, eax
test edi, edi
je 0x409fa0
push str._system32_
push 0x105
push esi
call fcn.00412bf4
add esp, 0xc
add edi, 0xa
cmp dword [esp + 4], 0
jne 0x40a003
mov eax, ebx
mov ebp, edi
mov edi, eax
cmp dword [esp + edi*4 + 0x110], 0
je 0x40a2b7
mov byte [esp + ebp + 8], 0
push dword [esp + edi*4 + 0x110]
push 0x105
push esi
call fcn.00412bf4
add esp, 0xc
lea edx, [esp + 4]
push edx
push esi
push 1
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExA]
mov ebx, eax
mov edx, dword [esp + 4]
test edx, edx
je 0x40a298
mov ecx, str.ucrtbase.dll
cmp ecx, dword [esp + edi*4 + 0x110]
je 0x40a155
mov esi, 1
mov edx, dword [esi*8 + 0x42c0a4]
inc edx
push edx
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40a11f
mov dword [esi*8 + 0x42c0a0], eax
inc esi
cmp esi, 0x32
jl 0x40a008
cmp ebx, 0xffffffff
je 0x40a06d
mov dword [0x42c0a0], 0xffffffff
push 0x450260
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x11c]
xor ecx, esp
cmp ecx, dword [0x42c080]
jne 0x40a068
mov eax, ebx
add esp, 0x120
pop ebp
pop ebx
pop edi
pop esi
ret
call fcn.0040b79d
mov ecx, dword [0x42c228]
mov edx, 0x40a340
cmp edx, dword [0x42c0d0]
jne 0x40a08a
mov dword [0x42c0d0], 0x40a350
cmp edx, dword [0x42c198]
jne 0x40a09c
mov dword [0x42c198], 0x40a350
cmp edx, dword [0x42c1a8]
jne 0x40a0ae
mov dword [0x42c1a8], 0x40a350
cmp edx, dword [0x42c1b0]
jne 0x40a0c0
mov dword [0x42c1b0], 0x40a350
cmp edx, dword [0x42c1b8]
jne 0x40a0d2
mov dword [0x42c1b8], 0x40a350
cmp edx, dword [0x42c1c0]
jne 0x40a0e4
mov dword [0x42c1c0], 0x40a350
cmp edx, dword [0x42c208]
jne 0x40a0f6
mov dword [0x42c208], 0x40a350
cmp edx, dword [0x42c218]
jne 0x40a108
mov dword [0x42c218], 0x40a350
cmp ecx, edx
jne 0x40a035
mov dword [0x42c228], 0x40a330
jmp 0x40a035
mov edx, dword [esi*8 + 0x42c0a0]
test edx, edx
je 0x40a145
cmp edx, esi
jge 0x40a02a
mov edx, dword [edx*8 + 0x42c0a0]
mov dword [esi*8 + 0x42c0a0], edx
jmp 0x40a02a
mov dword [esi*8 + 0x42c0a0], 0x40a340
jmp 0x40a02a
mov ecx, 0x424971
push ecx
push edx
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
mov ecx, 0x424985
push ecx
push edx
mov dword [esp + 8], edx
mov dword [0x4502f4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
test eax, eax
je 0x40a18d
mov dword [0x4502e0], eax
jmp 0x40a197
mov dword [0x4502e0], 0x40a340
mov ecx, 0x424985
push ecx
push edx
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
test eax, eax
je 0x40a1b6
mov dword [0x4502e0], eax
jmp 0x40a1c0
mov dword [0x4502e0], 0x40a340
mov ecx, 0x4249a1
push ecx
push edx
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
test eax, eax
je 0x40a1df
mov dword [0x4502e4], eax
jmp 0x40a1e9
mov dword [0x4502e4], 0x40a340
mov ecx, 0x4249bd
push ecx
push edx
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
test eax, eax
je 0x40a208
mov dword [0x4502e8], eax
jmp 0x40a212
mov dword [0x4502e8], 0x40a340
mov ecx, 0x4249d9
push ecx
push edx
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esp]
test eax, eax
je 0x40a231
mov dword [0x4502ec], eax
jmp 0x40a23b
mov dword [0x4502ec], 0x40a340
mov ecx, 0x4249f5
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40a253
mov dword [0x4502f0], eax
jmp 0x40a25d
mov dword [0x4502f0], 0x40a340
push 0
call dword [0x4502f4]
mov dword [0x450280], eax
push 1
call dword [0x4502f4]
mov dword [0x4502a0], eax
push 2
call dword [0x4502f4]
add esp, 0xc
inc edi
mov dword [0x4502c0], eax
cmp dword [esp + 4], 0
je 0x409fad
jmp 0x40a003
xor edx, edx
push edx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov edx, eax
mov dword [esp + 4], edx
test edx, edx
jne 0x409ff1
inc edi
jmp 0x409fad
xor ebx, ebx
mov edx, 0x40a340
mov eax, ebx
inc ebx
shl eax, 4
mov dword [eax + 0x42c0a8], edx
mov dword [eax + 0x42c0b0], edx
cmp ebx, 0x18
jb 0x40a2be
mov ecx, edx
mov ebx, 0xffffffff
mov dword [0x42c228], ecx
jmp 0x40a078
push 0x450260
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x11c]
xor ecx, esp
cmp ecx, dword [0x42c080]
jne 0x40a068
xor eax, eax
add esp, 0x120
pop ebp
pop ebx
pop edi
pop esi
ret
push 0x450260
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x409f5b