Function at 0x485100
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bdc30
mov eax, dword fs:[0]
push eax
sub esp, 0x40c
mov eax, dword [0x587614]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x588ce4], 0
je 0x485173
push ecx
mov ecx, esp
mov dword [ebp - 0x414], esp
push str.Module_ERROR
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
push ecx
mov ecx, esp
mov dword [ebp - 4], 0
push str.SDFS
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 0xffffffff
call fcn.00492290
add esp, 8
jmp 0x485441
call fcn.00485030
xor ecx, ecx
nop word [eax + eax]
mov al, byte [ecx + 0x5888a8]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x411], al
test al, al
jne 0x485180
mov edx, 0x5889ac
mov esi, edx
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4851a0
lea edi, [ebp - 0x410]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4851b0
mov ecx, edx
lea eax, [ebp - 0x410]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call edi
mov dword [0x588ce4], eax
cmp eax, 0x20
jae 0x485258
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push 0x5889ac
call edi
mov dword [0x588ce4], eax
cmp eax, 0x20
jae 0x485258
call esi
mov eax, dword [0x588ce4]
cmp eax, 0x20
jae 0x485258
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed030
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
push ecx
mov ecx, esp
mov dword [ebp - 4], 7
push str.SDFS
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 0xffffffff
call fcn.00492290
mov eax, dword [0x588ce4]
add esp, 8
test eax, eax
je 0x4852bc
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
xor eax, eax
jmp 0x485446
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.gsdll_revision
push eax
call esi
mov dword [0x588cf0], eax
test eax, eax
jne 0x4852c3
mov eax, dword [0x588ce4]
test eax, eax
je 0x485284
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed01c
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 1
push ecx
mov ecx, esp
push str.SDFS
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 0xffffffff
call fcn.00492290
add esp, 8
xor eax, eax
jmp 0x485446
push str.gsdll_init
push dword [0x588ce4]
call esi
mov dword [0x588cf4], eax
test eax, eax
jne 0x48530b
mov eax, dword [0x588ce4]
test eax, eax
je 0x4852ee
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed020
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 2
jmp 0x48529f
push str.gsdll_execute_begin
push dword [0x588ce4]
call esi
mov dword [0x588cfc], eax
test eax, eax
jne 0x485356
mov eax, dword [0x588ce4]
test eax, eax
je 0x485336
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed024
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 3
jmp 0x48529f
push str.gsdll_execute_cont
push dword [0x588ce4]
call esi
mov dword [0x588d00], eax
test eax, eax
jne 0x4853a1
mov eax, dword [0x588ce4]
test eax, eax
je 0x485381
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed028
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 4
jmp 0x48529f
push str.gsdll_execute_end
push dword [0x588ce4]
call esi
mov dword [0x588d04], eax
test eax, eax
jne 0x4853ec
mov eax, dword [0x588ce4]
test eax, eax
je 0x4853cc
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4ed02c
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 5
jmp 0x48529f
push str.gsdll_exit
push dword [0x588ce4]
call esi
mov dword [0x588cf8], eax
test eax, eax
jne 0x485437
mov eax, dword [0x588ce4]
test eax, eax
je 0x485417
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00485030
push ecx
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0x4e46a4
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__2]
mov dword [ebp - 4], 6
jmp 0x48529f
mov dword [0x588d1c], 0x485490
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b61c2
mov esp, ebp
pop ebp
ret