Function at 0x4096b0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x40ce06
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x224
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CStringArray::CStringArray
xor ebx, ebx
lea ecx, [esp + 0xc]
mov dword [esp + 0x238], ebx
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x411478]
mov cx, word [0x41147c]
mov dl, byte [0x41147e]
mov edi, dword [esp + 0x240]
mov dword [esp + 0x28], eax
mov word [esp + 0x2c], cx
lea eax, [esp + 0x24]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2e], dl
push eax
push ecx
lea edx, [esp + 0x30]
push 7
push edx
push edi
mov byte [esp + 0x24c], 1
call dword [0x412b14]
and eax, 0xffff
cmp eax, 0x9000
je 0x409777
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetSize
push 0x8f
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc]
push eax
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push 0x88
jmp 0x409843
mov edx, dword [0x411470]
mov al, byte [0x411474]
mov dword [esp + 0x28], edx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x12c]
mov byte [esp + 0x2c], al
push ecx
push edx
lea eax, [esp + 0x30]
push 5
push eax
push edi
call dword [0x412b14]
and eax, 0xffff
cmp eax, 0x9000
je 0x409806
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetSize
push 0x8f
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xc]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push 0x88
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc]
push eax
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea edx, [esp + 0x10]
push edx
jmp 0x409864
mov al, byte [esp + 0x12e]
push 0xffffffffffffffff
test al, 4
push ebx
lea ecx, [esp + 0x18]
je 0x409894
call sub.MFC42.DLL_CStringArray::SetSize
push 0x8f
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc]
push eax
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push 0x90
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
push edx
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x68]
call fcn.00406cc0
lea ecx, [esp + 0xc]
mov byte [esp + 0x238], bl
call fcn.0040c2d6
lea ecx, [esp + 0x10]
mov dword [esp + 0x238], 0xffffffff
call fcn.0040c53a
xor eax, eax
jmp 0x409911
call sub.MFC42.DLL_CStringArray::SetSize
push 0x8f
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
push edx
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push 0x91
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xc]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea eax, [esp + 0x10]
lea ecx, [esi + 0x68]
push eax
call fcn.00406cc0
lea ecx, [esp + 0xc]
mov byte [esp + 0x238], bl
call fcn.0040c2d6
lea ecx, [esp + 0x10]
mov dword [esp + 0x238], 0xffffffff
call fcn.0040c53a
mov eax, 1
mov ecx, dword [esp + 0x230]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x230
ret 4