Function at 0x4b9d30
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x552ab5
mov eax, dword fs:[0]
push eax
sub esp, 0x100
push ebx
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x110]
mov dword fs:[0], eax
mov esi, ecx
test esi, esi
jne 0x4b9d85
mov eax, 0x80004003
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
xor edi, edi
test eax, eax
jbe 0x4b9dba
mov eax, dword [ebp + 8]
mov ebx, dword [esi + 0x20]
push edi
add eax, 0x24
call fcn.00487e90
push ebx
mov ecx, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x4ba003
mov ecx, dword [ebp + 8]
inc edi
cmp edi, dword [ecx + 0x40]
jb 0x4b9d91
lea edx, [esp + 0x64]
push edx
call fcn.004b8c50
mov dword [esp + 0x118], 0
lea eax, [esp + 0x3c]
push eax
call fcn.004d3aa0
mov byte [esp + 0x118], 1
test byte [esi + 8], 2
je 0x4ba020
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x4b9df5
mov eax, dword [esi + 0x24]
push eax
lea ecx, [esp + 0x1c]
call dword [0x55a504]
mov ebx, eax
mov byte [esp + 0x118], 2
mov eax, dword [0x5c7000]
add eax, 0x30
push eax
lea ecx, [esp + 0x18]
push ecx
mov edi, str.userTheme_set
call fcn.0040f2b0
mov byte [esp + 0x120], 3
lea edx, [esp + 0x28]
push ebx
push edx
mov ecx, eax
call fcn.0040e540
mov bl, 4
mov byte [esp + 0x128], bl
push eax
lea eax, [esp + 0x30]
push eax
mov edi, 0x56152c
call fcn.0040f2b0
add esp, 0x18
mov byte [esp + 0x118], 5
push eax
lea eax, [esp + 0x40]
call fcn.0042cd90
mov byte [esp + 0x118], bl
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 3
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 2
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test byte [esi + 8], 0x20
je 0x4b9f46
mov eax, dword [esi + 4]
test eax, eax
je 0x4b9f46
push eax
lea ecx, [esp + 0x18]
call dword [0x55a504]
mov byte [esp + 0x118], 6
mov ecx, dword [0x5c7000]
push eax
lea edx, [esp + 0x24]
add ecx, 0x30
push edx
call fcn.0040e540
mov bl, 7
mov byte [esp + 0x120], bl
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040f2b0
add esp, 0x10
mov byte [esp + 0x118], 8
push eax
lea eax, [esp + 0x40]
call fcn.0042cd90
mov byte [esp + 0x118], bl
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 6
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x4b9f50
mov eax, dword [esi + 0x24]
push eax
lea ecx, [esp + 0x1c]
call dword [0x55a504]
mov ebx, eax
mov byte [esp + 0x118], 9
mov eax, dword [0x5c7000]
add eax, 0x10
push eax
lea ecx, [esp + 0x18]
push ecx
mov edi, str.ComponentsTheme_set
call fcn.0040f2b0
mov byte [esp + 0x120], 0xa
lea edx, [esp + 0x28]
push ebx
push edx
mov ecx, eax
call fcn.0040e540
mov bl, 0xb
mov byte [esp + 0x128], bl
push eax
lea eax, [esp + 0x30]
push eax
mov edi, 0x56152c
call fcn.0040f2b0
add esp, 0x18
mov byte [esp + 0x118], 0xc
push eax
lea eax, [esp + 0x40]
call fcn.0042cd90
mov byte [esp + 0x118], bl
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 0xa
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 9
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x18]
jmp 0x4ba050
mov eax, 1
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 4]
push ecx
lea ecx, [esp + 0x18]
call dword [0x55a504]
mov byte [esp + 0x118], 0xd
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
call fcn.0042cd90
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
add ecx, eax
mov edi, eax
cmp eax, ecx
jbe 0x4ba070
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
mov ebx, edi
mov ecx, dword [esp + 0x58]
lea edi, [ecx + eax]
mov dword [esp + 0x28], ebx
cmp eax, edi
jbe 0x4ba08f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4ba09d
cmp eax, dword [esp + 0x3c]
je 0x4ba0a3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, edi
je 0x4ba0f1
lea eax, [esp + 0x24]
call fcn.004a8ec0
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4ba149
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4ba0eb
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp ebx, edx
jb 0x4ba0e4
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x54]
inc ebx
jmp 0x4ba07a
mov eax, dword [eax]
mov ecx, eax
jmp 0x4ba0d4
mov byte [esp + 0x118], 0xe
lea esi, [esp + 0x3c]
call fcn.0042cff0
mov byte [esp + 0x118], 0
mov eax, dword [esp + 0x3c]
push eax
call sub.mfc90u.dll_delete
add esp, 4
mov dword [esp + 0x118], 0xffffffff
lea ecx, [esp + 0x64]
push ecx
call fcn.004192d0
mov eax, 0x80004005
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esi + 0x20]
xor edi, edi
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0xac], edi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
cmp dword [esi + 0x10], edi
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xb0], eax
jle 0x4ba38f
lea ecx, [esp + 0x14]
call dword [0x55a6c4]
mov byte [esp + 0x118], 0x11
lea ecx, [esp + 0x18]
call dword [0x55a6c4]
mov byte [esp + 0x118], 0x12
lea ecx, [esp + 0x1c]
call dword [0x55a6c4]
mov byte [esp + 0x118], 0x13
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.004b8680
mov byte [esp + 0x120], 0x14
mov ecx, dword [eax]
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push ecx
lea edx, [esp + 0x20]
push str._s.png
push edx
call ebx
add esp, 0x14
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x4ba1f6
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x30]
push eax
call fcn.004b8680
mov byte [esp + 0x120], 0x15
mov ecx, dword [eax]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0x28]
push str._s_Icon__s
push eax
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp + 8]
push 1
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
lea ecx, [esp + 0x4c]
call fcn.004b95c0
test eax, eax
jge 0x4ba311
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.004b8680
mov byte [esp + 0x120], 0x16
mov ecx, dword [eax]
mov edx, dword [esi + 0x24]
push ecx
push edx
lea eax, [esp + 0x24]
push str._s_s.png
push eax
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4ba2ab
mov dword [esp + 0x20], eax
jmp 0x4ba2b2
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0xc]
mov eax, dword [edx + edi*4]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004b8680
mov byte [esp + 0x120], 0x17
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x28]
push str._s_Icon__s
push ecx
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x13
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [ebp + 8]
push 0
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.004b95c0
test eax, eax
jl 0x4ba34d
mov edx, dword [esp + 0x84]
mov ecx, dword [esi + 0xc]
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + edi*4]
add eax, 4
mov dword [esp + 0x28], edx
call fcn.00437690
push eax
lea eax, [esp + 0x6c]
call fcn.0041a090
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xc8]
call fcn.004645f0
mov byte [esp + 0x118], 0x12
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 0x11
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
inc edi
cmp edi, dword [esi + 0x10]
jl 0x4ba173
jmp 0x4ba395
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
xor edi, edi
cmp dword [esi + 0x18], edi
mov dword [esp + 0x20], edi
jle 0x4ba663
lea ecx, [esp + 0x18]
call dword [0x55a6c4]
mov byte [esp + 0x118], 0x18
lea ecx, [esp + 0x14]
call dword [0x55a6c4]
mov byte [esp + 0x118], 0x19
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + edi*4]
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.004b8770
mov byte [esp + 0x120], 0x1a
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x24]
push str._s.png
push edx
call ebx
add esp, 0x14
mov byte [esp + 0x118], 0x19
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x4ba40f
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + edi*4]
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x38]
push eax
call fcn.004b8770
mov byte [esp + 0x120], 0x1b
mov ecx, dword [eax]
mov edx, dword [esp + 0x24]
push ecx
push edx
lea eax, [esp + 0x24]
push str._s_Overlay__s
push eax
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x19
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp + 8]
push 1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x4c]
call fcn.004b95c0
test eax, eax
jge 0x4ba553
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + edi*4]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.004b8770
mov byte [esp + 0x120], 0x1c
mov ecx, dword [eax]
mov edx, dword [esi + 0x24]
push ecx
push edx
lea eax, [esp + 0x28]
push str._s_s.png
push eax
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x19
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4ba4c4
mov dword [esp + 0x1c], eax
jmp 0x4ba4cb
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi + 0x14]
mov eax, dword [edx + edi*4]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004b8770
mov byte [esp + 0x120], 0x1d
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x24]
push str._s_Overlay__s
push ecx
call ebx
add esp, 0x18
mov byte [esp + 0x118], 0x19
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [ebp + 8]
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.004b95c0
test eax, eax
jge 0x4ba553
mov byte [esp + 0x118], 0x18
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x4ba655
mov edx, dword [esp + 0xa4]
mov ecx, dword [esi + 0x14]
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x64], edx
mov edx, dword [ecx + edi*4]
add eax, 4
mov dword [esp + 0x60], edx
call fcn.00437690
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa4]
add ecx, eax
test cl, 3
jne 0x4ba5ae
add eax, 4
shr eax, 2
cmp dword [esp + 0x9c], eax
ja 0x4ba5ae
lea ebx, [esp + 0x88]
call fcn.0041a810
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add eax, edx
mov edi, eax
shr edi, 2
mov dword [esp + 0x1c], eax
cmp ecx, edi
ja 0x4ba5d4
sub edi, ecx
mov ecx, dword [esp + 0x98]
cmp dword [ecx + edi*4], 0
jne 0x4ba5f9
push 0x10
call sub.mfc90u.dll_new
mov edx, dword [esp + 0x9c]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + edi*4]
and eax, 3
lea eax, [edx + eax*4]
test eax, eax
je 0x4ba615
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov dword [eax], edx
inc dword [esp + 0xa4]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0xe8]
call fcn.004645f0
mov byte [esp + 0x118], 0x18
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x118], 1
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edi, dword [esp + 0x20]
inc edi
cmp edi, dword [esi + 0x18]
mov dword [esp + 0x20], edi
jl 0x4ba3a4
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x40]
add ebx, 0x24
inc ecx
cmp dword [ebx + 0x14], ecx
ja 0x4ba677
call fcn.00418dc0
mov esi, dword [ebx + 0x18]
add esi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x14]
cmp eax, esi
ja 0x4ba686
sub esi, eax
mov edx, dword [ebx + 0x10]
cmp dword [edx + esi*4], 0
jne 0x4ba6a2
push 0xa8
call sub.mfc90u.dll_new
mov ecx, dword [ebx + 0x10]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [ebx + 0x10]
mov esi, dword [edx + esi*4]
mov byte [esp + 0x118], 0x20
test esi, esi
je 0x4ba6be
push esi
lea ecx, [esp + 0x68]
call fcn.004191e0
mov byte [esp + 0x118], 1
inc dword [ebx + 0x1c]
mov byte [esp + 0x118], 0x21
lea esi, [esp + 0x3c]
call fcn.0042cff0
mov byte [esp + 0x118], 0
mov eax, dword [esp + 0x3c]
push eax
call sub.mfc90u.dll_delete
add esp, 4
mov dword [esp + 0x118], 0xffffffff
lea ecx, [esp + 0x64]
push ecx
call fcn.004192d0
xor eax, eax
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4