Function at 0x418040
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x431f50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
cmp dword [edi + 4], 0xf
jne 0x418082
pop edi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret 0xc
lea ecx, [esp + 0x14]
mov ebx, 1
call fcn.00408d50
lea ecx, [esp + 0xc]
mov dword [esp + 0x24], 0
call fcn.00408d50
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], bl
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x30]
mov byte [esp + 0x24], 2
call sub.MFC42.DLL_CString::CString_2
mov ebp, dword [esp + 0x34]
mov eax, dword [edi + 4]
push ebp
push eax
mov ecx, 0x440960
mov byte [esp + 0x2c], 3
call fcn.0041cd60
cmp eax, 0xffffffff
jne 0x418129
lea ecx, [esp + 0x30]
mov byte [esp + 0x24], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x24], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop edi
mov eax, ebx
pop ebp
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret 0xc
cmp eax, 0xa
push esi
ja case.default.0x41812f
jmp dword [eax*4 + 0x4182d4]
mov esi, 0xc5
jmp 0x418181
mov esi, 0xc6
jmp 0x418181
mov esi, 0xc7
jmp 0x418181
mov esi, 0x4e
jmp 0x418181
mov esi, 0x71
jmp 0x418181
mov esi, 0x6a
jmp 0x418181
mov esi, 0xc8
jmp 0x418181
mov esi, 0xc9
jmp 0x418181
mov esi, 0xca
jmp 0x418181
mov esi, 0xcb
jmp 0x418181
mov esi, 0xdc
mov ecx, dword [edi + 4]
push ebp
push ecx
mov ecx, 0x440960
call fcn.0041cde0
sub eax, 3
je 0x4181ad
dec eax
je 0x4181a4
dec eax
jne 0x4181b6
mov ebp, 0x9f
xor ebx, ebx
jmp 0x4181ba
mov ebp, 0x9e
xor ebx, ebx
jmp 0x4181ba
mov ebp, 0x9d
xor ebx, ebx
jmp 0x4181ba
mov ebp, dword [esp + 0x30]
mov edx, dword [edi]
lea ecx, [esp + 0x10]
push edx
call fcn.00408d60
test esi, esi
je 0x418205
push esi
lea ecx, [esp + 0x1c]
call fcn.00408d60
lea eax, [esp + 0x18]
lea ecx, [esp + 0x38]
push eax
push 0x43f114
push ecx
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 3
call sub.MFC42.DLL_CString::CString
mov edx, dword [edi]
lea ecx, [esp + 0x34]
push edx
call sub.MFC42.DLL_CString::LoadStringA
test esi, esi
je 0x418250
push esi
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::LoadStringA
lea eax, [esp + 0x14]
lea ecx, [esp + 0x38]
push eax
push 0x43f114
push ecx
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x2c], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 3
call sub.MFC42.DLL_CString::CString
test ebx, ebx
pop esi
je 0x418265
lea edx, [esp + 0x30]
push 0
lea eax, [esp + 0x10]
push edx
push eax
push 0
jmp 0x418272
lea edx, [esp + 0x30]
push ebp
lea eax, [esp + 0x10]
push edx
push eax
push 1
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.00411a10
lea ecx, [esp + 0x30]
mov byte [esp + 0x24], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x24], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x1c]
pop edi
mov eax, ebx
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 0xc