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

Disassembly:
push 0xffffffffffffffff
push 0x100b151b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
push ebp
mov ebp, dword [esp + 0xd4]
push esi
push edi
mov esi, ecx
xor edi, edi
cmp ebp, edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x28], edi
mov dword [esi + 0x140c], 0x12
mov dword [esi + 0x1410], edi
mov dword [esi + 0x1414], edi
je 0x1002c226
mov eax, dword [esp + 0xe0]
cmp eax, edi
je 0x1002c226
cmp dword [esi + 0x1180], edi
je 0x1002a8d7
mov ecx, dword [esi + 0x1198]
mov dword [esp + 0x2c], edi
cmp ecx, edi
jne 0x1002a8df
mov dword [esp + 0x2c], 1
cmp eax, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x6c], edi
jle 0x1002aab3
push ebx
mov ebx, dword [esp + 0xdc]
mov edx, edi
mov ecx, 0xb
jmp 0x1002a917
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
mov ecx, 0xb
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1002a9e1
lea eax, [edi + edi*2]
lea ecx, [ebp + eax*8]
mov eax, dword [ebp + eax*8 + 4]
cmp eax, 0x4e58
je 0x1002a9dc
cmp eax, 0x4e57
je 0x1002a9dc
cmp eax, 0x4e82
je 0x1002a9dc
cmp eax, 0x4e4f
je 0x1002a9dc
cmp eax, 0x4e50
je 0x1002a9dc
cmp eax, 0x4e90
je 0x1002a9dc
cmp eax, 0x4e92
je 0x1002a9dc
cmp eax, 0x4e54
je 0x1002a9dc
cmp eax, 0x4e64
je 0x1002a9dc
cmp eax, 0x15
je 0x1002a9dc
cmp eax, 0x4e7e
je 0x1002a9dc
cmp eax, 0x4e7f
je 0x1002a9dc
cmp eax, 0x4e80
je 0x1002a9dc
cmp eax, 0x4e86
je 0x1002a9dc
cmp eax, 0x4e8b
je 0x1002a9dc
cmp eax, 0x4e89
je 0x1002a9dc
cmp eax, 0x4e8a
je 0x1002a9dc
cmp eax, 0x4e6b
je 0x1002a9dc
cmp eax, 0x4e6c
je 0x1002a9dc
cmp eax, 0x4e8e
je 0x1002a9dc
cmp eax, 0x4e91
je 0x1002a9dc
cmp eax, 0xffffffff
je 0x1002a9dc
mov byte [ecx], 8
jmp case.0x1002b93a.20096
mov ecx, 0xb
lea eax, [edi + edi*2]
lea ebp, [ebp + eax*8]
mov byte [ebp], 1
mov eax, dword [ebp + 4]
cmp eax, 0x4e61
jg 0x1002b334
je 0x1002b2fc
cmp eax, 0x4e48
jg 0x1002af73
je 0x1002af4f
cmp eax, 0x4e35
jg 0x1002abab
je case.0x1002b34a.20075
cmp eax, 0x4e2b
jg 0x1002ab2a
je 0x1002aaba
cmp eax, 0x20
jg 0x1002aa84
je 0x1002aa66
cmp eax, 0xffffffff
je 0x1002bf55
cmp eax, 0x15
jne case.default.0x1002af81
cmp word [ebp + 8], cx
je 0x1002aa54
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [esi + 0x143c], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002aa73
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
lea ecx, [esi + 0x25bc]
push edx
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp eax, 0x4e21
jl case.default.0x1002af81
cmp eax, 0x4e2a
jle case.0x1002af81.20041
mov byte [ebp], 2
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0xe4]
inc edi
cmp edi, eax
mov dword [esp + 0x70], edi
jl 0x1002a900
pop ebx
xor eax, eax
jmp 0x1002c22b
shl edi, 4
add ebx, edi
cmp word [ebx], 3
jne 0x1002be07
cmp word [ebp + 8], 3
jne 0x1002be07
mov ebx, dword [ebx + 8]
cmp ebx, 0xffffffff
jne 0x1002ab03
mov ebp, dword [ebp + 0x10]
test ebp, ebp
jg 0x1002aaf3
or eax, ebx
mov dword [esi + 0x144c], eax
mov dword [esi + 0x1448], eax
jmp case.0x1002b93a.20096
mov eax, ebp
mov dword [esi + 0x144c], eax
mov dword [esi + 0x1448], eax
jmp case.0x1002b93a.20096
test ebx, ebx
jl 0x1002be07
cmp ebx, 1
jg 0x1002be07
mov ebp, dword [ebp + 0x10]
test ebp, ebp
jg 0x1002ab1e
or ebp, 0xffffffff
mov dword [esi + ebx*4 + 0x1448], ebp
jmp case.0x1002b93a.20096
add eax, 0xffffb1d4
cmp eax, 8
ja case.default.0x1002af81
xor ecx, ecx
mov cl, byte [eax + 0x1002c250]
jmp dword [ecx*4 + 0x1002c248]
cmp word [ebp + 8], 3
je 0x1002ab57
mov byte [ebp], 3
jmp case.0x1002b93a.20096
lea edx, [esp + 0x8c]
push 0
lea eax, [esp + 0x8c]
push edx
shl edi, 4
push eax
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
push ecx
push edx
mov ecx, esi
call fcn.10021210
mov ecx, dword [esi + 0x11a0]
mov edx, dword [ebp + 0x10]
mov dword [ecx + eax*4], edx
jmp case.0x1002b93a.20096
add eax, 0xffffb1ca
cmp eax, 0x11
ja case.default.0x1002af81
xor edx, edx
mov dl, byte [eax + 0x1002c278]
jmp dword [edx*4 + 0x1002c25c]
cmp word [ebp + 8], cx
je 0x1002abd7
mov byte [ebp], 3
jmp case.0x1002b93a.20096
lea eax, [esp + 0x78]
push 0
lea ecx, [esp + 0x4c]
push eax
shl edi, 4
push ecx
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
push 0
push edx
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x1002be07
cmp dword [esp + 0x48], 3
jge 0x1002be07
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [eax + 0x44], ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x78]
mov dword [esi + 0x140c], 0x1e
mov dword [esi + 0x1410], edx
mov dword [esi + 0x1414], eax
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0x2008
je 0x1002ac66
mov byte [ebp], 3
jmp case.0x1002b93a.20096
shl edi, 4
add ebx, edi
cmp word [ebx], 8
je 0x1002ac7a
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x58]
push ecx
push edx
push eax
mov ecx, esi
call fcn.100210f0
test eax, eax
jne 0x1002ac9c
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x44]
push ecx
push 1
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov eax, dword [esp + 0x44]
test eax, eax
jl case.0x1002b93a.20096
cmp dword [esp + 0x18], 1
je 0x1002ace0
lea ecx, [esi + 0x18]
lea edi, [esi + 0x1418]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXPackage____thiscall_CMDXBuilder::GetMDXPackage_void_]
push eax
mov ecx, edi
call fcn.1001e740
push 1
mov ecx, edi
call fcn.1001e7e0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
lea edi, [esi + 0x18]
push eax
push ecx
mov ecx, edi
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXBuilder::ResetAxisDim_short_int__long_int_]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], 0
test eax, eax
jl 0x1002ad7b
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x6c]
lea eax, [esp + 0x54]
push edx
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
mov edx, dword [esp + 0x6c]
push edx
call fcn.100af4c3
mov ecx, dword [esi + 0x25d4]
push 0
mov ebx, eax
mov eax, dword [esi + 0x25d8]
push 1
push 0
push ebx
push eax
push ecx
call fcn.10098d80
mov edx, dword [esp + 0x68]
add esp, 0x10
mov ecx, edi
push eax
mov eax, dword [esp + 0x64]
push ebx
push edx
push eax
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXBuilder::AddMember_short_int__long_int__char_const___unsigned_char__unsigned_long_int__int_]
push ebx
call fcn.100ae914
mov ecx, dword [esp + 0x70]
add esp, 4
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
inc eax
cmp eax, ecx
mov dword [esp + 0x54], eax
jle 0x1002ad05
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
push 0
push edx
push eax
mov ecx, edi
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x1002b7d4
mov dword [eax + 0x54], 0
jmp 0x1002b7d4
cmp word [ebp + 8], cx
je 0x1002adb2
mov byte [ebp], 3
jmp case.0x1002b93a.20096
lea eax, [esp + 0x84]
push 0
lea ecx, [esp + 0xa0]
push eax
shl edi, 4
push ecx
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x9c]
push 0
push edx
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x1002be07
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
push 0
push 0
sete cl
mov dword [eax + 0x4c], ecx
mov edx, dword [esi]
push 0
push 0
push 0
mov ecx, esi
call dword [edx + 0x84]
test eax, eax
jge case.0x1002b93a.20096
mov byte [ebp], 7
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002ae42
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov ecx, dword [esi + 0x1444]
xor eax, eax
cmp word [ebp + 0x10], 0xffff
sete al
test eax, eax
mov dword [esi + 0x1444], eax
jne 0x1002ae6c
lea ecx, [esi + 0x1418]
call fcn.1001e6f0
jmp case.0x1002b93a.20096
test ecx, ecx
jne case.0x1002b93a.20096
mov eax, dword [esi + 4]
lea ecx, [esi + 0x1418]
push eax
call fcn.1001e6b0
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002ae97
mov byte [ebp], 3
jmp case.0x1002b93a.20096
cmp word [ebx], 0
mov edx, 1
mov ecx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ecx
je 0x1002aeda
lea ecx, [esp + 0x28]
push 0
lea edx, [esp + 0x18]
push ecx
shl edi, 4
push edx
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edi, dword [esi + 0x20]
xor eax, eax
cmp word [ebp + 0x10], 0xffff
mov ebx, dword [edi + 0xa0]
sete al
and ebx, 0xfffffff8
or eax, ebx
test al, 1
je 0x1002af08
neg ecx
sbb ecx, ecx
and ecx, 4
neg edx
sbb edx, edx
and edx, 2
or ecx, edx
or eax, ecx
mov dword [edi + 0xa0], eax
xor eax, eax
cmp word [ebp + 0x10], 0xffff
mov edx, dword [esi]
mov ecx, esi
setne al
add eax, 0x23
mov dword [esi + 0x140c], eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
mov dword [esi + 0x1410], eax
mov dword [esi + 0x1414], eax
call dword [edx + 0x84]
test eax, eax
jge case.0x1002b93a.20096
mov byte [ebp], 7
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002af5e
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor eax, eax
cmp word [ebp + 0x10], 0xffff
sete al
mov dword [esi + 0x1458], eax
jmp case.0x1002b93a.20096
add eax, 0xffffb1b7
cmp eax, 0x17
ja case.default.0x1002af81
jmp dword [eax*4 + 0x1002c28c]
cmp word [ebp + 8], cx
je 0x1002af97
mov byte [ebp], 3
jmp case.0x1002b93a.20096
lea ecx, [esp + 0xac]
push 0
lea edx, [esp + 0x80]
push ecx
shl edi, 4
push edx
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
cmp eax, 0xffffffff
jne 0x1002b016
cmp ecx, 0xffffffff
jne 0x1002b016
xor edi, edi
push 0
push edi
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
mov ebp, eax
test ebp, ebp
je 0x1002b00a
mov eax, dword [ebp + 8]
xor ebx, ebx
dec eax
js 0x1002b00a
push 0
push ebx
push edi
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
mov ecx, dword [ebp + 8]
inc ebx
dec ecx
cmp ebx, ecx
jle 0x1002aff4
inc edi
cmp di, 2
jl 0x1002afda
jmp case.0x1002b93a.20096
push 0
push ecx
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x1002be07
xor edx, edx
cmp word [ebp + 0x10], 0xffff
push 0
push 0
sete dl
mov dword [eax + 0x50], edx
mov eax, dword [esi]
push 0
push 0
push 0
mov ecx, esi
call dword [eax + 0x84]
test eax, eax
jge case.0x1002b93a.20096
mov byte [ebp], 7
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002b06c
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
push 2
sete cl
mov dword [esi + 0x145c], ecx
mov ecx, esi
call fcn.10025080
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002b099
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor edx, edx
cmp word [ebp + 0x10], 0xffff
push 2
mov ecx, esi
sete dl
mov dword [esi + 0x1460], edx
call fcn.10025080
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 3
je 0x1002b0c7
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x680], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b0e8
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, eax
call fcn.10078e20
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 3
je 0x1002b11c
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, eax
call fcn.10078e50
jmp case.0x1002b93a.20096
cmp word [ebp + 8], cx
je 0x1002b14f
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [eax + 0x1690], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 3
je 0x1002b188
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x1694], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b1ba
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x1698]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b1f2
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x169c]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b22a
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16a0]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b262
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x94]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
lea ecx, [esi + 0x14ec]
push eax
mov dword [esp + 0xd8], 7
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x94]
mov dword [esp + 0xd4], 0xffffffff
call fcn.100ae920
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b2b7
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xa4]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
lea ecx, [esi + 0x14f0]
push eax
mov dword [esp + 0xd8], 8
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0xa4]
mov dword [esp + 0xd4], 0xffffffff
call fcn.100ae920
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b30c
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16a4]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
add eax, 0xffffb19e
cmp eax, 0x32
ja case.default.0x1002af81
xor ecx, ecx
mov cl, byte [eax + 0x1002c364]
jmp dword [ecx*4 + 0x1002c2ec]
cmp word [ebp + 8], 0x2008
je 0x1002b362
mov byte [ebp], 3
jmp case.0x1002b93a.20096
lea edx, [esp + 0x38]
push 0
lea eax, [esp + 0x38]
push edx
shl edi, 4
push eax
add edi, ebx
push 2
push edi
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [ebp], al
jne case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x40]
push ecx
push 1
push edx
mov dword [esp + 0x4c], 0xffffffff
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov eax, dword [esp + 0x40]
test eax, eax
jl case.0x1002b93a.20096
cmp dword [esp + 0x18], 1
je 0x1002b3d4
lea ecx, [esi + 0x18]
lea edi, [esi + 0x1418]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXPackage____thiscall_CMDXBuilder::GetMDXPackage_void_]
push eax
mov ecx, edi
call fcn.1001e740
push 1
mov ecx, edi
call fcn.1001e7e0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push 0
lea edi, [esi + 0x18]
push eax
push ecx
mov ecx, edi
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x1c], ebx
je 0x1002b3fe
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x14], edx
jmp 0x1002b406
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov ecx, edi
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXBuilder::ResetAxisDim_short_int__long_int_]
test ebx, ebx
je 0x1002b423
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x54], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], 0
test eax, eax
jl 0x1002b4d5
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x4c]
push eax
xor ebx, ebx
push ecx
push edx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x64]
push eax
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xd4], ebx
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x64]
mov edx, dword [esi + 0x25d8]
push 0
push 1
push 0
mov ebx, eax
push eax
mov eax, dword [esi + 0x25d4]
push edx
push eax
call fcn.10098d80
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add esp, 0x10
push eax
push ebx
push ecx
push edx
mov ecx, edi
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXBuilder::AddMember_short_int__long_int__char_const___unsigned_char__unsigned_long_int__int_]
lea ecx, [esp + 0x64]
mov dword [esp + 0xd4], 0xffffffff
call fcn.100ae920
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
inc eax
cmp eax, ecx
mov dword [esp + 0x4c], eax
jle 0x1002b437
mov ebx, dword [esp + 0x1c]
cmp dword [ebp + 4], 0x4e76
jne 0x1002b4e9
test ebx, ebx
je 0x1002b4e9
mov dword [ebx + 0x54], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x140c], 5
mov dword [esi + 0x1410], eax
mov dword [esi + 0x1414], ecx
jmp 0x1002b7d4
cmp word [ebp + 8], 0x2008
je 0x1002b51d
mov byte [ebp], 3
jmp case.0x1002b93a.20096
shl edi, 4
add ebx, edi
cmp word [ebx], 8
je 0x1002b531
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x80]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
lea ebx, [esi + 0x10fc]
push 0
push eax
mov ecx, ebx
mov dword [esp + 0xdc], 1
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXDimension::RemoveDescendants_char_const___short_int_]
lea ecx, [esp + 0x80]
mov dword [esp + 0xd4], 0xffffffff
call fcn.100ae920
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x5c]
push ecx
push 1
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x1002b7d4
mov dword [esp + 0x14], 0
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x74]
lea ecx, [esp + 0x14]
push eax
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
push 0x18
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x3c], edi
test edi, edi
mov dword [esp + 0xd4], 2
je 0x1002b60e
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x98]
or al, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x74]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
push 1
push 0
push eax
mov ecx, edi
mov byte [esp + 0xe0], 3
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXMember::constructor_char_const___unsigned_char__unsigned_long_int_]
mov dword [edi], 0x100c28e4
mov dword [esp + 0x1c], edi
xor edi, edi
jmp 0x1002b614
xor edi, edi
mov dword [esp + 0x1c], edi
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov ecx, edx
mov dword [esp + 0xd4], 4
mov dword [esp + 0x10], ecx
inc ecx
cmp ecx, edi
jne 0x1002b656
cmp eax, edi
je 0x1002b64b
push edx
push eax
call dword [sym.imp.OOLAPLib.dll_void___stdcall_DestructElements_class_CMDXMember____int_]
mov eax, dword [ebx + 4]
push eax
call fcn.100ae914
add esp, 4
mov dword [ebx + 4], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 8], edi
jmp 0x1002b77d
cmp eax, edi
jne 0x1002b69a
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 1]
lea edi, [eax*4]
push edi
call sub.MFC42.DLL_operatornew
mov edx, eax
mov ecx, edi
mov dword [ebx + 4], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], eax
jmp 0x1002b77d
mov edi, dword [ebx + 0xc]
cmp ecx, edi
jg 0x1002b6de
cmp edx, ecx
jge 0x1002b6c2
mov ecx, dword [esp + 0x10]
inc ecx
sub ecx, edx
lea edx, [eax + edx*4]
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [ebx + 8], eax
jmp 0x1002b77d
jle 0x1002b6d1
sub edx, ecx
push edx
lea edx, [eax + ecx*4]
push edx
call dword [sym.imp.OOLAPLib.dll_void___stdcall_DestructElements_class_CMDXMember____int_]
mov eax, dword [esp + 0x10]
inc eax
mov dword [ebx + 8], eax
jmp 0x1002b77d
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x1002b708
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x1002b6fc
mov eax, 4
jmp 0x1002b708
cmp eax, 0x400
jle 0x1002b708
mov eax, 0x400
add eax, edi
cmp ecx, eax
mov dword [esp + 0x28], eax
jl 0x1002b716
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
lea edx, [ecx*4]
push edx
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
shl ecx, 2
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x40], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebx + 8]
lea esi, [ecx + 1]
lea edi, [eax + edx*4]
mov ecx, esi
xor eax, eax
sub ecx, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 4]
push eax
call fcn.100ae914
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
mov dword [ebx + 8], esi
mov esi, dword [esp + 0x98]
add esp, 8
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xd4], 0xffffffff
mov dword [ecx + eax*4], edx
mov al, byte [esp + 0x2c]
test al, 1
je 0x1002b7b4
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x98]
and al, 0xfe
mov dword [esp + 0x2c], eax
call fcn.100ae920
mov ecx, dword [esp + 0x74]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x1002b59b
cmp dword [esp + 0x18], 1
je case.0x1002b93a.20096
mov edx, dword [esi]
push 0
push 0
push 0
push 0
push 0
mov ecx, esi
call dword [edx + 0x84]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002b808
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor eax, eax
cmp word [ebp + 0x10], 0xffff
push 2
mov ecx, esi
sete al
mov dword [esi + 0x1468], eax
call fcn.10025080
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002b836
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [esi + 0x1434], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002b85b
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor edx, edx
cmp word [ebp + 0x10], 0xffff
sete dl
mov dword [esi + 0x1430], edx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002b880
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor eax, eax
cmp word [ebp + 0x10], 0xffff
sete al
mov dword [esi + 0x146c], eax
jmp case.0x1002b93a.20096
shl edi, 4
add ebx, edi
cmp word [ebx], 3
je 0x1002b8a9
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebx + 8]
test eax, eax
jl 0x1002be07
cmp eax, 1
jg 0x1002be07
cmp word [ebp + 8], 0xb
jne 0x1002be07
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [esi + eax*4 + 0x1450], ecx
jmp case.0x1002b93a.20096
shl edi, 4
add ebx, edi
cmp word [ebx], 3
je 0x1002b8f2
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov edi, dword [ebx + 8]
test edi, edi
jl 0x1002be07
cmp edi, 1
jg 0x1002be07
push 0
lea ecx, [esi + 0x18]
push edi
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
mov ebx, eax
test ebx, ebx
jne 0x1002b921
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebp + 4]
add eax, 0xffffb184
cmp eax, 0xf
ja case.0x1002b93a.20096
xor edx, edx
mov dl, byte [eax + 0x1002c3ac]
jmp dword [edx*4 + 0x1002c398]
cmp word [ebp + 8], 0xb
je 0x1002b951
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebx + 0x3c]
xor ecx, ecx
and al, 0xfe
mov dword [ebx + 0x3c], eax
cmp word [ebp + 0x10], 0xffff
sete cl
or ecx, eax
mov dword [ebx + 0x3c], ecx
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x1002b98d
mov edx, dword [ebx + 0x4c]
push edx
push eax
call dword [sym.imp.OOLAPLib.dll_void___stdcall_DestructElements_class_CMDXCalculated____int_]
mov eax, dword [ebx + 0x48]
push eax
call fcn.100ae914
add esp, 4
mov dword [ebx + 0x48], 0
xor eax, eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x4c], eax
test byte [ebx + 0x3c], 1
jne case.0x1002b93a.20096
push eax
push 1
push edi
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXBuilder::ReduceAllAxis_short_int__int__class_CMDXPackage__]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002b9c1
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov edi, dword [ebx + 0x3c]
xor ecx, ecx
and edi, 0xfffffff7
push 1
mov dword [ebx + 0x3c], edi
cmp word [ebp + 0x10], 0xffff
mov eax, edi
setne cl
dec ecx
and ecx, 8
or ecx, eax
mov dword [ebx + 0x3c], ecx
mov ecx, ebx
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXAxis::SetModified_int_]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002b9fe
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
lea ecx, [ebx + 0x58]
push edx
call sub.MFC42.DLL_CString::operator_3
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1002ba1a
mov eax, dword [ebx + 0x40]
or al, 0x20
mov dword [ebx + 0x40], eax
push 1
mov ecx, ebx
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXAxis::SetModified_int_]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002ba39
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + 0x5c]
push eax
call sub.MFC42.DLL_CString::operator_3
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1002ba55
mov eax, dword [ebx + 0x40]
or al, 0x40
mov dword [ebx + 0x40], eax
push 1
mov ecx, ebx
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXAxis::SetModified_int_]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002ba74
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [eax + 0x168c]
xor edx, edx
and ecx, 0xfffffffe
mov dword [eax + 0x168c], ecx
cmp word [ebp + 0x10], 0xffff
sete dl
or edx, ecx
mov dword [eax + 0x168c], edx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002babe
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ebx, dword [eax + 0x168c]
xor edx, edx
and ebx, 0xfffffffd
mov dword [eax + 0x168c], ebx
cmp word [ebp + 0x10], 0xffff
mov ecx, ebx
setne dl
dec edx
and edx, 2
or edx, ecx
mov dword [eax + 0x168c], edx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bb0e
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16a8]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bb46
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16bc]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bb7e
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16c0]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bbb6
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16c4]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002bbee
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [eax + 0x16ac], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bc27
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16b0]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bc5f
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0x16b4]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002bc97
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
xor ecx, ecx
cmp word [ebp + 0x10], 0xffff
sete cl
mov dword [eax + 0x16b8], ecx
jmp case.0x1002b93a.20096
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x1002b93a.20096
mov ecx, eax
call fcn.1007ed10
test eax, eax
jge case.0x1002b93a.20096
mov byte [ebp], 7
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 3
je 0x1002bcfc
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1174], eax
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bd1a
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1002bdaf
cmp word [eax], 0
je 0x1002bdaf
push eax
lea ecx, [esp + 0xa4]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esi + 0x25b4]
mov eax, dword [eax]
mov edx, dword [esi + 0x2518]
lea ebx, [esi + 0x2518]
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0xdc], 5
call dword [edx + 0x14]
test eax, eax
lea ecx, [esp + 0xa0]
mov dword [esp + 0xd4], 0xffffffff
setl byte [esp + 0x23]
call fcn.100ae920
mov al, byte [esp + 0x23]
test al, al
je 0x1002bd91
mov byte [ebp], 7
jmp case.0x1002b93a.20096
mov eax, dword [esi + 8]
mov ecx, ebx
mov edx, dword [eax + 0x68c]
mov eax, dword [eax + 0x688]
push edx
push eax
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CDataParserMD::SetVariables_struct___MIDL___MIDL_itf_OpenMD_0000_0074___long_int_]
jmp case.0x1002b93a.20096
mov edx, dword [esi + 0x2518]
lea ecx, [esi + 0x2518]
call dword [edx]
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0x2008
je 0x1002bdd3
mov byte [ebp], 3
jmp case.0x1002b93a.20096
shl edi, 4
add ebx, edi
cmp word [ebx], 8
je 0x1002bde7
mov byte [ebp], 5
jmp case.0x1002b93a.20096
mov ecx, dword [esi + 0x25c0]
test ecx, ecx
jne 0x1002bdfa
mov byte [ebp], 7
jmp case.0x1002b93a.20096
mov eax, dword [ebx + 8]
push eax
call fcn.10085980
test eax, eax
jne 0x1002be10
mov byte [ebp], 5
jmp case.0x1002b93a.20096
lea ebx, [eax + 0x58]
mov ecx, ebx
call sub.MFC42.DLL_CStringList::RemoveAll
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x68]
push ecx
push 1
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
mov eax, dword [esp + 0x68]
test eax, eax
jl case.0x1002b93a.20096
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
mov dword [esp + 0x14], 0
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x14]
push eax
push ecx
push edx
call edi
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xa8]
push eax
call sub.MFC42.DLL_CString::CString_1
push eax
mov ecx, ebx
mov dword [esp + 0xd8], 6
call sub.MFC42.DLL_CStringList::AddTail
lea ecx, [esp + 0xa8]
mov dword [esp + 0xd4], 0xffffffff
call fcn.100ae920
mov ecx, dword [esp + 0x60]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x1002be45
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 3
je 0x1002bec1
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov edx, dword [ebp + 0x10]
mov dword [esi + 0x25b8], edx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002bedf
mov byte [ebp], 3
jmp case.0x1002b93a.20096
xor eax, eax
cmp word [ebp + 0x10], 0xffff
sete al
mov dword [esi + 0x1474], eax
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 8
je 0x1002bf04
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [esi + 0x1478]
call sub.MFC42.DLL_CString::operator_3
jmp case.0x1002b93a.20096
lea eax, [ebp + 8]
mov dword [esp + 0x3c], eax
mov ax, word [eax]
test ax, ax
je 0x1002bf3c
cmp ax, 0xb
je 0x1002bf42
cmp ax, 0x2008
je 0x1002bf3c
mov byte [ebp], 3
jmp case.0x1002b93a.20096
cmp ax, 0xb
jne 0x1002bf6b
cmp word [ebp + 0x10], 0
jne 0x1002bf5e
mov edx, dword [esi + 0x20]
test byte [edx + 0xa0], 8
jne 0x1002bf5e
mov byte [ebp], 8
jmp case.0x1002b93a.20096
cmp ax, 0xb
jne 0x1002bf6b
cmp word [ebp + 0x10], 0xffff
je 0x1002bf75
cmp ax, 0x2008
je 0x1002bf75
xor edi, edi
jmp 0x1002bf7a
mov edi, 8
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx + 0xa0]
and al, 0xf7
or eax, edi
mov dword [ecx + 0xa0], eax
lea ecx, [esi + 0x10cc]
call sub.MFC42.DLL_CStringList::RemoveAll
lea ebx, [esi + 0x1418]
mov ecx, ebx
call fcn.1001e6f0
mov eax, dword [esi + 4]
mov ecx, ebx
push eax
call fcn.1001e6b0
push 0xa
lea ecx, [esp + 0xb4]
call fcn.100aea28
and edi, 8
mov dword [esp + 0xd4], 9
mov dword [esp + 0x14], edi
je 0x1002bfe7
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0xb0]
push ecx
push edx
call fcn.10099f70
add esp, 8
xor ebp, ebp
lea ebx, [esi + 0x18]
mov dword [esp + 0x10], ebp
push ebp
mov ecx, ebx
xor edi, edi
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CMDXBuilder::GetNbAxisDim_short_int_]
test eax, eax
jle 0x1002c101
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
push edi
push ebp
mov byte [esp + 0xe0], 0xa
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXBuilder::GetDimName_short_int__long_int__class_CString__]
test eax, eax
je 0x1002c0db
mov ecx, dword [esp + 0x24]
push 0xa
push 0x100e0b40
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x1002c0db
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1002c07f
mov eax, dword [esp + 0xbc]
test eax, eax
jle 0x1002c078
mov edx, dword [esp + 0x24]
push 0
push edx
lea ecx, [esp + 0xb8]
call sub.MFC42.DLL_CStringList::Find
mov ebx, eax
neg ebx
sbb ebx, ebx
neg ebx
jmp 0x1002c081
mov ebx, 1
jmp 0x1002c081
xor ebx, ebx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
test eax, eax
jl 0x1002c0c9
cmp eax, 1
jle 0x1002c143
cmp eax, 2
jne 0x1002c0c9
mov eax, dword [esp + 0x24]
push 0
push eax
lea ecx, [esi + 0x10cc]
call sub.MFC42.DLL_CStringList::Find
test ebx, ebx
je 0x1002c131
test eax, eax
jne 0x1002c0db
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esi + 0x10cc]
call sub.MFC42.DLL_CStringList::AddTail
test ebx, ebx
jne 0x1002c0db
mov eax, dword [esp + 0x1c]
mov ecx, esi
push eax
push edi
push ebp
call fcn.1002c3c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xd4], 9
call fcn.100ae920
lea ebx, [esi + 0x18]
push ebp
mov ecx, ebx
inc edi
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CMDXBuilder::GetNbAxisDim_short_int_]
cmp edi, eax
jl 0x1002c003
mov ecx, dword [esp + 0x10]
inc ebp
inc ecx
cmp bp, 2
mov dword [esp + 0x10], ecx
jle 0x1002bff0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xd4], 0xffffffff
call sub.MFC42.DLL_CStringList::CStringList
jmp case.0x1002b93a.20096
test eax, eax
je 0x1002c0cd
push eax
lea ecx, [esi + 0x10cc]
call sub.MFC42.DLL_CStringList::RemoveAt
jmp 0x1002c0cd
push 0
push edi
push ebp
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x1002c0c9
mov ecx, dword [eax + 0x54]
xor edx, edx
cmp ecx, ebx
mov ecx, dword [eax + 0x1c]
setne dl
test ebx, ebx
mov dword [esp + 0x1c], edx
je 0x1002c17f
or ecx, 8
mov dword [eax + 0x54], 1
mov dword [eax + 0x1c], ecx
jmp 0x1002c0c9
and ecx, 0xfffffff7
mov dword [eax + 0x54], 0
mov dword [eax + 0x1c], ecx
jmp 0x1002c0cd
cmp word [ebp + 8], 3
je 0x1002c1a1
mov byte [ebp], 3
jmp case.0x1002b93a.20096
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x1470], ecx
jmp case.0x1002b93a.20096
cmp word [ebp + 8], 0xb
je 0x1002c1bf
mov byte [ebp], 3
jmp case.0x1002b93a.20096
cmp word [ebp + 0x10], 0xffff
jne 0x1002c1f7
test edx, edx
jne 0x1002c1ea
lea ecx, [esi + 0x18]
lea edi, [esi + 0x1418]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXPackage____thiscall_CMDXBuilder::GetMDXPackage_void_]
push eax
mov ecx, edi
call fcn.1001e740
push 1
mov ecx, edi
call fcn.1001e7e0
mov dword [esp + 0x18], 1
jmp case.0x1002b93a.20096
cmp edx, 1
jne 0x1002c210
mov edx, dword [esi]
push 0
push 0
push 0
push 0
push 0
mov ecx, esi
call dword [edx + 0x84]
mov dword [esp + 0x18], 0
jmp case.0x1002b93a.20096
mov byte [ebp], 4
jmp case.0x1002b93a.20096
mov eax, 0x80004005
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xc8
ret 0xc