Function at 0x40de20
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41bb08
push eax
mov dword fs:[0], esp
sub esp, 0x18
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x40e721
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x420060
call edi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x40de95
push 0x420048
mov byte [0x42306c], 1
call esi
test eax, eax
mov dword [0x423070], eax
je 0x40e6f7
push 0x420048
call edi
test eax, eax
mov dword [esp + 0x10], eax
je 0x40e6f7
push ebp
push 0x420038
push 0x420048
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x42002c
lea ecx, [esp + 0x24]
mov ebp, eax
mov dword [esp + 0x20], 0x40e740
mov byte [esp + 0x17], 0
mov dword [esp + 0x1c], 0
call sub.MFC42u.DLL_CString::CString_1
push 0x420010
push 0x41fff8
mov dword [esp + 0x38], 0
call esi
push eax
call ebx
test eax, eax
je 0x40df89
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push ecx
push 1
push 1
push edx
call eax
mov esi, eax
test esi, esi
je 0x40df89
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
xor bl, bl
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40df31
mov ecx, dword [esp + 0x14]
push 0x42002c
add eax, ecx
push eax
call edi
test eax, eax
je 0x40df2f
add esi, 0x14
jmp 0x40df11
mov bl, 1
xor dl, dl
xor edi, edi
test bl, bl
je 0x40df7d
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x40df59
cmp ecx, ebp
mov edi, eax
jne 0x40df50
mov dl, 1
add eax, 4
test dl, dl
je 0x40df42
jmp 0x40df5d
test dl, dl
je 0x40df7d
push 0
lea edx, [esp + 0x20]
push 4
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x40df7d
mov byte [esp + 0x13], 1
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
or esi, 0xffffffff
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x40dffa
mov al, byte [0x41fe44]
test al, al
je 0x40dffa
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x41ffd8
lea eax, [esp + 0x20]
push 0x41ff90
push eax
call sub.MFC42u.DLL_CString::Format
mov ecx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41ff74
push 0x420048
call edi
push eax
call ebx
push 0x42002c
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x40e780
mov byte [esp + 0x17], 0
mov dword [esp + 0x24], 0
call sub.MFC42u.DLL_CString::CString_1
push 0x420010
push 0x41fff8
mov dword [esp + 0x38], 2
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call ebx
test eax, eax
je 0x40e0e1
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
push 1
push 1
push ecx
call eax
mov esi, eax
test esi, esi
je 0x40e0e1
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebp, dword [esp + 0x14]
xor bl, bl
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40e091
add eax, ebp
push 0x42002c
push eax
call edi
test eax, eax
je 0x40e08f
add esi, 0x14
jmp 0x40e075
mov bl, 1
xor dl, dl
xor edi, edi
test bl, bl
je 0x40e0e1
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x40e0bd
cmp ecx, esi
mov edi, eax
jne 0x40e0b4
mov dl, 1
add eax, 4
test dl, dl
je 0x40e0a6
jmp 0x40e0c1
test dl, dl
je 0x40e0e1
push 0
lea edx, [esp + 0x1c]
push 4
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x40e0e1
mov byte [esp + 0x13], 1
or esi, 0xffffffff
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x40e152
mov al, byte [0x41fe44]
test al, al
je 0x40e152
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x41ff58
lea eax, [esp + 0x20]
push 0x41ff90
push eax
call sub.MFC42u.DLL_CString::Format
mov ecx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41ff48
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x42002c
lea ecx, [esp + 0x20]
mov ebp, eax
mov dword [esp + 0x24], 0x40e7c0
mov byte [esp + 0x17], 0
mov dword [esp + 0x28], 0
call sub.MFC42u.DLL_CString::CString_1
push 0x420010
push 0x41fff8
mov dword [esp + 0x38], 4
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call ebx
test eax, eax
je 0x40e23d
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
push 1
push 1
push edi
call eax
mov esi, eax
test esi, esi
je 0x40e23d
xor bl, bl
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40e1eb
add eax, edi
push 0x42002c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40e1e9
add esi, 0x14
jmp 0x40e1cb
mov bl, 1
xor dl, dl
xor edi, edi
test bl, bl
je 0x40e237
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x40e213
cmp ecx, ebp
mov edi, eax
jne 0x40e20a
mov dl, 1
add eax, 4
test dl, dl
je 0x40e1fc
jmp 0x40e217
test dl, dl
je 0x40e237
push 0
lea eax, [esp + 0x24]
push 4
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x40e237
mov byte [esp + 0x13], 1
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
or esi, 0xffffffff
lea ecx, [esp + 0x1c]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x40e2ae
mov al, byte [0x41fe44]
test al, al
je 0x40e2ae
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x41ff2c
lea ecx, [esp + 0x20]
push 0x41ff90
push ecx
call sub.MFC42u.DLL_CString::Format
mov edx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41ff1c
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call ebx
push 0x42002c
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 0x40e800
mov byte [esp + 0x17], 0
mov dword [esp + 0x28], 0
call sub.MFC42u.DLL_CString::CString_1
push 0x420010
push 0x41fff8
mov dword [esp + 0x38], 6
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call ebx
test eax, eax
je 0x40e399
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push 1
push 1
push edx
call eax
mov esi, eax
test esi, esi
je 0x40e399
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebp, dword [esp + 0x14]
xor bl, bl
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40e349
add eax, ebp
push 0x42002c
push eax
call edi
test eax, eax
je 0x40e347
add esi, 0x14
jmp 0x40e32d
mov bl, 1
xor dl, dl
xor edi, edi
test bl, bl
je 0x40e399
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x40e375
cmp ecx, esi
mov edi, eax
jne 0x40e36c
mov dl, 1
add eax, 4
test dl, dl
je 0x40e35e
jmp 0x40e379
test dl, dl
je 0x40e399
push 0
lea eax, [esp + 0x20]
push 4
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x40e399
mov byte [esp + 0x13], 1
or esi, 0xffffffff
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x40e40e
mov al, byte [0x41fe44]
test al, al
je 0x40e40e
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x30], 7
call ebx
push eax
push 0x41fefc
lea ecx, [esp + 0x20]
push 0x41ff90
push ecx
call sub.MFC42u.DLL_CString::Format
mov edx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
jmp 0x40e414
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x41feec
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
push 0x42002c
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 0x40e850
mov byte [esp + 0x17], 0
mov dword [esp + 0x28], 0
call sub.MFC42u.DLL_CString::CString_1
push 0x420010
push 0x41fff8
mov dword [esp + 0x38], 8
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call edi
test eax, eax
je 0x40e718
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push 1
push 1
push ebp
call eax
mov esi, eax
test esi, esi
je 0x40e509
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
xor bl, bl
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40e4b1
add eax, ebp
push 0x42002c
push eax
call edi
test eax, eax
je 0x40e4af
add esi, 0x14
jmp 0x40e495
mov bl, 1
xor dl, dl
xor edi, edi
test bl, bl
je 0x40e4fd
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x20]
add eax, ebp
mov ecx, dword [eax]
test ecx, ecx
je 0x40e4d9
cmp ecx, esi
mov edi, eax
jne 0x40e4d0
mov dl, 1
add eax, 4
test dl, dl
je 0x40e4c2
jmp 0x40e4dd
test dl, dl
je 0x40e4fd
push 0
lea edx, [esp + 0x20]
push 4
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x40e4fd
mov byte [esp + 0x13], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
or esi, 0xffffffff
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x40e576
mov al, byte [0x41fe44]
test al, al
je 0x40e576
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 9
call ebx
push eax
push 0x41fed0
lea eax, [esp + 0x20]
push 0x41ff90
push eax
call sub.MFC42u.DLL_CString::Format
mov ecx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41fec0
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call edi
push ebp
push 0x40e890
push eax
push 0x42002c
call fcn.0040e980
add esp, 0x10
test al, al
jne 0x40e5f6
mov al, byte [0x41fe44]
test al, al
je 0x40e5f6
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 0xa
call ebx
push eax
push 0x41fea4
lea edx, [esp + 0x20]
push 0x41ff90
push edx
call sub.MFC42u.DLL_CString::Format
mov eax, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41fe94
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call edi
push ebp
push 0x40e8d0
push eax
push 0x42002c
call fcn.0040ea90
add esp, 0x10
test al, al
jne 0x40e676
mov al, byte [0x41fe44]
test al, al
je 0x40e676
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x30], 0xb
call ebx
push eax
push 0x41fe74
lea ecx, [esp + 0x20]
push 0x41ff90
push ecx
call sub.MFC42u.DLL_CString::Format
mov edx, dword [esp + 0x28]
add esp, 0x10
push 0
push 0x41ff84
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call sub.MFC42u.DLL_CString::CString
push 0x41fe64
push 0x420048
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call edi
push ebp
push 0x40e930
push eax
push 0x42002c
call fcn.0040eba0
add esp, 0x10
test al, al
pop ebp
jne 0x40e6f7
mov al, byte [0x41fe44]
test al, al
je 0x40e6f7
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::CString_3
mov dword [esp + 0x2c], 0xc
call ebx
push eax
push 0x41fe48
lea eax, [esp + 0x18]
push 0x41ff90
push eax
call sub.MFC42u.DLL_CString::Format
mov ecx, dword [esp + 0x20]
add esp, 0x10
push 0
push 0x41ff84
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c], esi
call sub.MFC42u.DLL_CString::CString
push fcn.0040e970
call fcn.004086a0
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
mov ebp, dword [esp + 0x14]
jmp 0x40e50c
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x24
ret