Function at 0x41a390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42a369
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
mov eax, dword [0x43aae0]
xor eax, esp
push ebx
push ebp
mov ebp, dword [esp + 0x100]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x104]
xor ebx, ebx
cmp ebp, ebx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x60], eax
je 0x41ac52
mov ecx, dword [ebp]
lea edx, [esp + 0x18]
push edx
push 1
push 0x10a0
push ebp
call dword [ecx + 0x2c]
cmp dword [esp + 0x18], ebx
je 0x41ac52
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
mov eax, dword [ebp]
lea ecx, [esp + 0x68]
push ecx
push ebp
mov dword [esp + 0x100], ebx
call dword [eax + 0x20]
cmp eax, ebx
jge 0x41a450
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
jmp 0x41ac52
push esi
push edi
mov dword [esp + 0x44], ebx
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push ebx
mov byte [esp + 0x104], 1
call edi
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x48], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
mov eax, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x98]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov ecx, dword [esp + 0x94]
push ecx
lea ecx, [esp + 0x90]
mov byte [esp + 0x104], 2
call dword [sym.imp.iCDBPI.dll_public:_void___thiscall_iCDB::String::constructor_char_const__]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x100], 3
call dword [sym.imp.iCDBPI.dll_public:_char_const____thiscall_iCDB::String::operator_char_const__void_const]
push eax
call dword [sym.imp.MSVCR71.dll_atoi]
add esp, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
lea ecx, [esp + 0x84]
push ecx
push eax
xor esi, esi
call dword [edx + 0x1c]
cmp dword [esp + 0x84], ebx
jle 0x41abec
mov dword [esp + 0x54], 1
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x58]
push ecx
push eax
call dword [edx + 0x28]
cmp dword [esp + 0x24], ebx
je 0x41abd3
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0x58]
push ecx
push eax
call dword [edx + 0x2c]
mov edx, dword [esp + 0xbc]
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], edx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::Empty]
mov eax, dword [esp + 0x2c]
cmp eax, 5
mov dword [esp + 0x3c], ebx
jne 0x41aa46
inc esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0x1c], ebx
push ebx
mov byte [esp + 0x104], 4
call edi
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push esi
push ebx
push 1
push ebp
mov dword [esp + 0x30], ebx
call dword [eax + 0x6c]
mov edx, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0xa0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push 0x42e7cc
push eax
mov byte [esp + 0x10c], 5
call dword [ecx]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0xc8]
push edx
push eax
call dword [ecx + 0x64]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x60]
push edx
mov dword [esp + 0x2c], 2
mov ecx, dword [eax]
push eax
call dword [ecx + 0x64]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
mov eax, dword [esp + 0x60]
cmp eax, ebx
mov byte [esp + 0x100], 6
je 0x41aa15
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x58], ebx
push ebx
mov byte [esp + 0x104], 7
call edi
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x5c], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x34]
mov eax, dword [esp + 0x58]
push eax
lea ecx, [esp + 0x80]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0x104], 8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
lea ecx, [esp + 0xc0]
push ecx
push eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0xc0]
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0xb8], ecx
jle 0x41a9d9
jmp 0x41a670
lea esi, [eax + 1]
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x6c]
push ecx
push esi
mov dword [esp + 0x44], ebx
mov edx, dword [eax]
push eax
mov dword [esp + 0xac], esi
call dword [edx + 0x28]
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x41a9c1
mov edx, dword [eax]
lea ecx, [esp + 0x64]
push ecx
push 0x42e7ec
push eax
call dword [edx]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x68]
push ecx
push eax
call dword [edx + 0x88]
cmp word [esp + 0x78], 0xffff
jne 0x41a9ad
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x68]
push ecx
push eax
call dword [edx + 0x84]
cmp eax, ebx
jl 0x41a983
cmp dword [esp + 0x50], ebx
je 0x41a983
mov dword [esp + 0x5c], ebx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x100], 9
call fcn.004166b0
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
lea ecx, [esp + 0x5c]
push ecx
push eax
call dword [edx + 0x20]
mov edx, dword [esp + 0x5c]
push edx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea ecx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0xdc]
mov byte [esp + 0x104], 0xa
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::iterator___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
mov ebp, dword [eax]
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::iterator___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::end_void_]
mov edi, dword [eax]
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::iterator___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
mov esi, dword [eax]
cmp esi, edi
je 0x41a7a6
jmp 0x41a790
movsx ecx, byte [esi]
push ecx
call dword [sym.imp.MSVCR71.dll_toupper]
add esp, 4
inc esi
mov byte [ebp], al
inc ebp
cmp esi, edi
jne 0x41a790
cmp dword [esp + 0xf0], 0x10
mov eax, dword [esp + 0xdc]
jae 0x41a7be
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x1c]
call dword [0x42c2e0]
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
lea ecx, [esp + 0xb4]
push ecx
push eax
call dword [edx + 0x64]
mov edx, dword [esp + 0xb4]
mov ecx, 1
xor eax, eax
cmp edx, ecx
sete al
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x30]
cmp eax, ebx
je 0x41a80a
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
jmp 0x41a93d
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::Empty]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x90]
push edx
push eax
call dword [ecx + 0x40]
cmp eax, ebx
jl 0x41a8e0
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 0xb
call fcn.004166b0
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push ebx
push eax
call dword [ecx + 0x5c]
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x78]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0x5c
lea ecx, [esp + 0x78]
mov byte [esp + 0x104], 0xc
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
cmp eax, 0xffffffff
je 0x41a8b6
inc eax
push eax
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x7c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Left]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x104], 0xd
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0xac]
mov byte [esp + 0x100], 0xc
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x74]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x10]
push eax
mov byte [esp + 0x104], 0xa
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [esp + 0x3c], ebx
je 0x41a8f7
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
jmp 0x41a93d
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 0xe
call fcn.004166b0
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
lea ecx, [esp + 0x10]
push ecx
push eax
call dword [edx + 0x34]
mov edx, dword [esp + 0x10]
push edx
lea ecx, [esp + 0x34]
call dword [0x42c574]
mov eax, dword [esp + 0x10]
push eax
mov byte [esp + 0x104], 0xa
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xd8]
mov byte [esp + 0x100], 9
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edx, dword [esp + 0x5c]
push edx
mov byte [esp + 0x104], 8
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [esp + 0xa0]
mov ebp, dword [esp + 0xc4]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], ebx
je 0x41a9ad
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x70]
call fcn.004184c0
cmp eax, ebx
jne 0x41a9ad
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x28]
push edx
call fcn.00411760
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0xb8]
mov eax, esi
cmp eax, ecx
jl 0x41a670
mov esi, dword [esp + 0xb0]
lea ecx, [esp + 0x7c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x58]
push eax
call edi
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x9c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x1c]
push ecx
mov byte [esp + 0x104], 3
call edi
jmp 0x41abd3
mov edx, dword [eax]
push ebx
call dword [edx + 8]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x9c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x1c]
push eax
mov byte [esp + 0x104], 3
call edi
jmp 0x41abb3
cmp eax, 7
jne 0x41aa87
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0xa4]
push edx
push 0x42e7bc
push eax
call dword [ecx]
mov ecx, dword [esp + 0xa4]
lea eax, [esp + 0x34]
push eax
push ecx
mov ecx, dword [esp + 0xb0]
call fcn.00417a00
mov dword [esp + 0x28], 1
jmp 0x41abb3
cmp eax, 0xc
mov eax, dword [esp + 0x24]
jne 0x41abad
lea ecx, [esp + 0x40]
push ecx
push 0x42e7dc
mov dword [esp + 0x48], ebx
mov edx, dword [eax]
push eax
call dword [edx]
cmp eax, ebx
jl 0x41abb3
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
lea ecx, [esp + 0x88]
push ecx
push eax
call dword [edx + 0x28]
mov dword [esp + 0x4c], ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x100], 0xf
call fcn.004166b0
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
lea ecx, [esp + 0x4c]
push ecx
push eax
call dword [edx + 0x30]
mov edx, dword [esp + 0x4c]
push edx
lea ecx, [esp + 0x84]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov dword [esp + 0x48], ebx
lea ecx, [esp + 0x48]
mov byte [esp + 0x100], 0x11
call fcn.004166b0
mov eax, dword [esp + 0x88]
mov ecx, dword [eax]
lea edx, [esp + 0x48]
push edx
push ebx
push eax
call dword [ecx + 0x64]
mov eax, dword [esp + 0x48]
push eax
lea ecx, [esp + 0x9c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x98]
push ecx
push edx
lea eax, [esp + 0x3c]
push str._s._s
push eax
mov byte [esp + 0x110], 0x12
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
mov eax, dword [esp + 0x50]
add esp, 0x10
mov dword [esp + 0x28], 3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x88]
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x98]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x48]
push eax
call edi
lea ecx, [esp + 0x80]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x4c]
push ecx
mov byte [esp + 0x104], 3
call edi
jmp 0x41abb3
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], ebx
jne 0x41abc5
mov ecx, dword [esp + 0x34]
cmp dword [ecx - 0xc], ebx
je 0x41abd3
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x28]
push edx
call fcn.00411760
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x84]
inc eax
mov dword [esp + 0x54], eax
dec eax
cmp eax, ecx
jl 0x41a4f5
mov eax, dword [esp + 0x70]
cmp eax, ebx
je 0x41abfa
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x100], 2
call dword [sym.imp.iCDBPI.dll_public:_void___thiscall_iCDB::StringT_char_::destructor_void_]
lea ecx, [esp + 0x94]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esp + 0x44]
push edx
call edi
lea ecx, [esp + 0x34]
mov dword [esp + 0x100], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x20]
cmp eax, ebx
pop edi
pop esi
je 0x41ac52
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0xf0]
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xe8]
pop ebx
xor ecx, esp
call fcn.0042708e
add esp, 0xf4
ret 8