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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x868]
push ebx
mov ebx, eax
sub esp, 0xd9c
mov dword [ebp - 0xd7c], edx
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.6224f890
test eax, eax
je 0x62250620
mov dword [esp], 0x62258100
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x10]
sub esp, 4
test eax, eax
jne 0x6224fb80
mov eax, dword [0x622580d0]
test eax, eax
je 0x6224fb2a
mov dword [esp + 8], 0x6224dfe0
mov dword [esp + 4], 0x6224df90
mov dword [esp], ebx
call eax
sub esp, 0xc
mov ecx, dword [0x6226d0e8]
test ecx, ecx
jne 0x6225066d
mov edx, dword [0x6226d0ec]
test edx, edx
je 0x6224fba8
lea eax, [ebx + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.6224a180
mov dword [esp], 0x62258100
mov esi, eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
test esi, esi
js 0x6224fb72
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0xd7c]
mov dword [edi], eax
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp - 0xd7c]
xor esi, esi
mov dword [edi], eax
mov dword [esp], 0x62258100
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, esi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
lea edi, [ebp - 0x660]
movzx edx, word [esi + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x6224fbb0
cmp word [ebp - 0x660], 0
mov edx, edi
je 0x6224fbd9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x6224fbd0
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + str.lib]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x6224fbe0
lea eax, [ebp - 0xa70]
mov dword [esp + 8], edi
lea edi, [ebp - 0x450]
mov dword [esp + 0x10], eax
mov eax, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov dword [ebp - 0xd80], eax
call eax
xor eax, eax
sub esp, 0x20
lea esi, [esi]
nop
movzx edx, word [esi + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x6224fc50
cmp word [ebp - 0x450], 0
mov edx, edi
je 0x6224fc79
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x6224fc70
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + str.etc]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x6224fc80
lea eax, [ebp - 0x96c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xd80]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call eax
lea edx, [ebp - 0x240]
mov eax, esi
sub esp, 0x20
call fcn.6224e710
test eax, eax
je 0x622504d8
lea eax, [ebp - 0x240]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LoadLibraryW]
mov dword [0x6226d0ec], eax
sub esp, 4
test eax, eax
je 0x622504d8
mov dword [esp + 4], str.mono_assembly_get_image
mov esi, dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esp], eax
call esi
mov dword [0x6226d090], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_assembly_load_from
mov dword [esp], eax
call esi
mov dword [0x6226d08c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_assembly_name_get_name
mov dword [esp], eax
call esi
mov dword [0x6226d088], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_assembly_name_get_culture
mov dword [esp], eax
call esi
mov dword [0x6226d084], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_assembly_name_get_version
mov dword [esp], eax
call esi
mov dword [0x6226d080], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_assembly_open
mov dword [esp], eax
call esi
mov dword [0x6226d07c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_config_parse
mov dword [esp], eax
call esi
mov dword [0x6226d0e4], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_class_from_mono_type
mov dword [esp], eax
call esi
mov dword [0x6226d074], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_class_from_name
mov dword [esp], eax
call esi
mov dword [0x6226d070], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_class_get_method_from_name
mov dword [esp], eax
call esi
mov dword [0x6226d06c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_domain_get
mov dword [esp], eax
call esi
mov dword [0x6226d068], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_domain_get_by_id
mov dword [esp], eax
call esi
mov dword [0x6226d064], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_domain_set
mov dword [esp], eax
call esi
mov dword [0x6226d060], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_domain_set_config
mov dword [esp], eax
call esi
mov dword [0x6226d05c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_free
mov dword [esp], eax
call esi
mov dword [0x6226d0e0], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_get_corlib
mov dword [esp], eax
call esi
mov dword [0x6226d058], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_image_open
mov dword [esp], eax
call esi
mov dword [0x6226d0dc], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_install_assembly_preload_hook
mov dword [esp], eax
call esi
mov dword [0x6226d0d8], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_jit_exec
mov dword [esp], eax
call esi
mov dword [0x6226d050], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_jit_init_version
mov dword [esp], eax
call esi
mov dword [0x6226d04c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_jit_set_trace_options
mov dword [esp], eax
call esi
mov dword [0x6226d0d0], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_marshal_get_vtfixup_ftnptr
mov dword [esp], eax
call esi
mov dword [0x6226d048], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_object_get_domain
mov dword [esp], eax
call esi
mov dword [0x6226d044], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_object_get_virtual_method
mov dword [esp], eax
call esi
mov dword [0x6226d040], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_object_new
mov dword [esp], eax
call esi
mov dword [0x6226d03c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_object_unbox
mov dword [esp], eax
call esi
mov dword [0x6226d038], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_reflection_type_from_name
mov dword [esp], eax
call esi
mov dword [0x6226d034], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_runtime_invoke
mov dword [esp], eax
call esi
mov dword [0x6226d030], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_runtime_object_init
mov dword [esp], eax
call esi
mov dword [0x6226d02c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_runtime_quit
mov dword [esp], eax
call esi
mov dword [0x6226d028], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_set_dirs
mov dword [esp], eax
call esi
mov dword [0x6226d0bc], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_set_verbose_level
mov dword [esp], eax
call esi
mov dword [0x6226d0b8], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_stringify_assembly_name
mov dword [esp], eax
call esi
mov dword [0x6226d0b4], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_string_new
mov dword [esp], eax
call esi
mov dword [0x6226d024], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_thread_attach
mov dword [esp], eax
call esi
mov dword [0x6226d020], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_thread_manage
mov dword [esp], eax
call esi
mov dword [0x6226d01c], eax
sub esp, 8
test eax, eax
je 0x622504d8
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_callspec_set_assembly
mov edi, 0x6224c620
mov dword [esp], eax
call esi
mov dword [0x6226d078], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.mono_image_open_from_module_handle
mov dword [esp], eax
call esi
mov edx, 0x6224c5f0
sub esp, 8
test eax, eax
cmove eax, edx
mov dword [esp + 4], str.mono_jit_set_aot_mode
mov dword [0x6226d054], eax
mov eax, dword [0x6226d0ec]
mov dword [esp], eax
call esi
mov dword [0x6226d0d4], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.mono_profiler_create
mov dword [esp], eax
call esi
mov dword [0x6226d0cc], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.mono_profiler_install
mov dword [esp], eax
call esi
mov dword [0x6226d0c8], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.mono_profiler_set_runtime_shutdown_begin_callback
mov dword [esp], eax
call esi
mov dword [0x6226d0c4], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.mono_set_crash_chaining
mov dword [esp], eax
call esi
mov edx, 0x6224c610
sub esp, 8
test eax, eax
cmove eax, edx
mov dword [esp + 4], str.mono_trace_set_print_handler
mov dword [0x6226d0c0], eax
mov eax, dword [0x6226d0ec]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
cmove eax, edi
mov dword [esp + 4], str.mono_trace_set_printerr_handler
mov dword [0x6226d018], eax
mov eax, dword [0x6226d0ec]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
cmove eax, edi
mov dword [esp + 4], str.wine_mono_assembly_load_from_gac
mov dword [0x6226d014], eax
mov eax, dword [0x6226d0ec]
mov dword [esp], eax
call esi
mov dword [0x6226d0b0], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.wine_mono_install_assembly_preload_hook
mov dword [esp], eax
call esi
mov dword [0x6226d0ac], eax
mov eax, dword [0x6226d0ec]
sub esp, 8
mov dword [esp + 4], str.wine_mono_install_assembly_preload_hook_v2
mov dword [esp], eax
call esi
mov dword [0x6226d0a8], eax
mov eax, dword [0x6226d078]
sub esp, 8
test eax, eax
je 0x622504b0
mov eax, dword [0x6226d0cc]
test eax, eax
je 0x622505d0
mov dword [esp], 0
call eax
mov dword [esp + 4], 0x6224c630
mov dword [esp], eax
call dword [0x6226d0c4]
mov dword [esp], 1
call dword [0x6226d0c0]
mov dword [esp], 0x62253d20
call dword [0x6226d018]
mov dword [esp], 0x62253d20
call dword [0x6226d014]
lea eax, [ebp - 0x96c]
mov dword [esp + 4], eax
lea eax, [ebp - 0xa70]
mov dword [esp], eax
call dword [0x6226d0bc]
mov dword [esp], 0
call dword [0x6226d0e4]
mov eax, dword [0x6226d0a8]
test eax, eax
je 0x622505f8
mov dword [esp + 4], 0
mov dword [esp], fcn.62250ac0
call eax
lea edi, [ebp - 0xd70]
mov dword [esp + 8], 0x100
mov esi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
mov dword [esp + 4], edi
mov dword [esp], str.WINE_MONO_AOT
call esi
sub esp, 0xc
test eax, eax
je 0x6225043d
cmp dword [ebp - 0xd70], 0x65746e69
je 0x62250520
cmp dword [ebp - 0xd70], 0x656e6f6e
je 0x62250588
test byte [0x62258170], 2
jne 0x62250690
mov eax, dword [0x6226d0d4]
xor edx, edx
test eax, eax
je 0x6225043d
lea esi, [esi]
mov dword [esp], edx
call eax
lea edi, [ebp - 0xc70]
mov dword [esp + 8], 0x100
mov dword [esp + 4], edi
mov dword [esp], str.WINE_MONO_TRACE
call esi
sub esp, 0xc
test eax, eax
je 0x62250468
mov dword [esp], edi
call dword [0x6226d0d0]
lea eax, [ebp - 0xb70]
mov dword [esp + 8], 0x100
mov dword [esp + 4], eax
mov dword [esp], str.WINE_MONO_VERBOSE
call esi
sub esp, 0xc
test eax, eax
je 0x6224fb42
movsx eax, byte [ebp - 0xb70]
sub eax, 0x30
mov dword [esp], eax
call dword [0x6226d0b8]
jmp 0x6224fb42
mov eax, dword [0x6226d0ec]
mov dword [esp + 4], str.mono_trace_set_assembly
mov dword [esp], eax
call esi
mov dword [0x6226d078], eax
sub esp, 8
test eax, eax
jne 0x62250340
lea esi, [esi]
test byte [0x62258170], 2
jne 0x622505a0
mov eax, dword [0x6226d0ec]
mov esi, 0x80004005
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
mov dword [0x6226d0ec], 0
sub esp, 4
mov dword [esp], 0x62258100
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x6224fb72
cmp word [ebp - 0xd6c], 0x7072
jne 0x6225040a
cmp byte [ebp - 0xd6a], 0
mov edx, 8
jne 0x6225040a
mov eax, dword [0x6226d0d4]
test eax, eax
jne 0x62250438
test byte [0x62258170], 2
je 0x6225043d
mov dword [esp + 0xc], str.mono_jit_set_aot_mode_export_not_found_n
mov dword [esp + 8], str.load_mono
mov dword [esp + 4], 0x62258170
mov dword [esp], 1
call fcn.6224d210
jmp 0x6225043d
cmp byte [ebp - 0xd6c], 0
jne 0x6225041a
xor edx, edx
jmp 0x62250541
mov dword [esp + 0xc], str.Could_not_load_Mono_into_this_process_n
mov dword [esp + 8], str.load_mono
mov dword [esp + 4], 0x62258170
mov dword [esp], 1
call fcn.6224d210
jmp 0x622504e5
mov eax, dword [0x6226d0c8]
test eax, eax
je 0x62250367
mov dword [esp + 4], 0x6224c630
mov dword [esp], 0
call eax
jmp 0x62250367
mov eax, dword [0x6226d0ac]
mov dword [esp + 4], 0
test eax, eax
je 0x6225065b
mov dword [esp], 0x62251bd0
call eax
jmp 0x622503d2
mov esi, 0x80131700
test byte [0x62258170], 2
je 0x6224fb72
mov dword [esp + 0xc], str.Wine_Mono_is_not_installed_n
mov dword [esp + 8], str.CLRRuntimeInfo_GetRuntimeHost
mov dword [esp + 4], 0x62258170
mov dword [esp], 1
call fcn.6224d210
jmp 0x6224fb72
mov dword [esp], 0x62251b90
call dword [0x6226d0d8]
jmp 0x622503d2
test byte [0x62258170], 2
jne 0x622506bb
mov dword [esp], 0x62258100
mov esi, 0x80004005
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x6224fb72
mov dword [esp + 0xc], str.unknown_WINE_MONO_AOT_setting__valid_settings_are_interp_and_none_n
mov dword [esp + 8], str.load_mono
mov dword [esp + 4], 0x62258170
mov dword [esp], 1
call fcn.6224d210
xor edx, edx
jmp 0x62250541
mov dword [esp + 0xc], str.Cannot_load_Mono_after_it_has_been_shut_down._n
mov esi, 0x80004005
mov dword [esp + 8], str.load_mono
mov dword [esp + 4], 0x62258170
mov dword [esp], 1
call fcn.6224d210
mov dword [esp], 0x62258100
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x6224fb72