Function at 0x1002852a
Capabilities:
Load assembly via iassembly
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x100b14a4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40c
mov eax, dword [esp + 0x420]
push esi
mov esi, ecx
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x14], ecx
je 0x1002a651
mov eax, dword [esp + 0x428]
cmp eax, ecx
je 0x1002a651
cmp dword [esi + 0x1180], ecx
je 0x100273fb
mov edx, dword [esi + 0x1198]
mov dword [esp + 0xc8], ecx
cmp edx, ecx
jne 0x10027406
mov dword [esp + 0xc8], 1
cmp eax, ecx
mov dword [esp + 8], ecx
jle 0x10027645
push ebx
push ebp
push edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x430]
mov ebx, dword [esp + 0x42c]
lea eax, [eax + eax*2]
lea edi, [ecx + eax*8]
lea ebp, [edi + 8]
push ebp
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x10027567
mov eax, dword [edi + 4]
cmp eax, 0x4e4b
je 0x10027567
cmp eax, 0x4e21
je 0x10027567
cmp eax, 0x4e55
je 0x10027567
cmp eax, 0x4e56
je 0x10027567
cmp eax, 0x4e5c
je 0x10027567
cmp eax, 0x4e51
je 0x10027567
cmp eax, 0x4e53
je 0x10027567
cmp eax, 0x4e83
je 0x10027567
cmp eax, 0x4e91
je 0x10027567
cmp eax, 0x4e6b
je 0x10027567
cmp eax, 0x4e6c
je 0x10027567
cmp eax, 0x4e73
je 0x10027567
cmp eax, 0x4e74
je 0x10027567
cmp eax, 0x4e77
je 0x10027567
cmp eax, 0x4e82
je 0x10027567
cmp eax, 0x4e78
je 0x10027567
cmp eax, 0x4e93
je 0x10027567
cmp eax, 0x4e3b
je 0x10027567
cmp eax, 0x4e79
je 0x10027567
cmp eax, 0x4e7c
je 0x10027567
cmp eax, 0x4e7d
je 0x10027567
cmp eax, 0x4e7e
je 0x10027567
cmp eax, 0x4e7f
je 0x10027567
cmp eax, 0x4e80
je 0x10027567
cmp eax, 0x4e84
je 0x10027567
cmp eax, 0x4e85
je 0x10027567
cmp eax, 0x4e8e
je 0x10027567
cmp eax, 0x4e3d
je 0x10027567
cmp eax, 0x4e22
je 0x10027567
cmp eax, 0x4e45
je 0x10027567
cmp eax, 0x4e44
je 0x10027567
cmp eax, 0xffffffff
je 0x10027567
mov byte [edi], 7
jmp case.0x10029836.20096
mov byte [edi], 1
mov eax, dword [edi + 4]
cmp eax, 0x4e59
jg 0x100295ec
je 0x100295d2
cmp eax, 0x4e41
jg 0x100285f3
je case.0x100279ce.20005
cmp eax, 0x4e31
jg 0x10027c7f
cmp eax, 0x4e2e
jge 0x10027b89
cmp eax, 0x4e24
jg 0x100279c0
je 0x10027662
cmp eax, 0x4e21
jg 0x10027619
je 0x100275ff
cmp eax, 0xffffffff
je 0x100275fa
cmp eax, 0x15
je 0x100275e4
cmp eax, 0x20
jne case.0x100295fa.20070
lea ecx, [esi + 0x25bc]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi + 0x143c]
neg edx
sbb edx, edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov byte [edi], 8
jmp case.0x10029836.20096
mov word [ebp], 8
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x98]
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
sub eax, 0x4e22
je 0x1002764c
dec eax
je case.0x100295fa.20103
mov byte [edi], 2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x434]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x10027415
pop edi
pop ebp
pop ebx
xor eax, eax
jmp 0x1002a656
mov word [ebp], 0xb
mov ecx, dword [esi + 0x1424]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x58]
push 0
lea eax, [esp + 0x68]
shl ecx, 4
push edx
push eax
add ecx, ebx
push 2
push ecx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov word [ebp], 0x2008
xor ebp, ebp
push 2
push ebp
push 8
mov dword [esp + 0x24], ebp
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov edx, dword [esp + 0x58]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x64]
push edx
push eax
mov ecx, esi
call fcn.10025350
test eax, eax
jne 0x100277dc
lea ecx, [esp + 0x108]
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x108]
push edx
lea ecx, [esp + 0x108]
push eax
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x74]
push edx
push eax
push ecx
mov ecx, esi
call fcn.10020330
test eax, eax
je 0x100277ac
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x10c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x64]
push eax
push ecx
push edx
mov ecx, esi
call fcn.100252e0
test eax, eax
je 0x1002775b
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
lea eax, [esp + 0x2c]
push eax
push ecx
push edx
push 2
mov ecx, esi
call fcn.10025420
mov eax, dword [esp + 0x2c]
mov edx, dword [edi + 0x10]
mov ebx, dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
lea ecx, [esp + 0x18]
push eax
push ecx
push edx
call ebx
mov eax, dword [esp + 0x2c]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x1002776d
mov edx, dword [edi + 0x10]
mov ebx, dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
lea ecx, [esp + 0x18]
push ebp
push ecx
push edx
call ebx
mov eax, dword [esp + 0x40]
cmp eax, ebp
jne 0x1002778e
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x18]
push ebp
push edx
push eax
mov dword [esp + 0x24], 1
call ebx
jmp case.0x10029836.20096
mov ecx, eax
lea edx, [esp + 0x18]
dec ecx
push ebp
neg ecx
sbb ecx, ecx
push edx
and ecx, eax
mov eax, dword [edi + 0x10]
push eax
mov dword [esp + 0x24], ecx
call ebx
jmp case.0x10029836.20096
mov edx, dword [edi + 0x10]
mov ebx, dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
lea ecx, [esp + 0x18]
push ebp
push ecx
push edx
mov dword [esp + 0x24], ebp
call ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x10]
inc eax
push ebp
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push ecx
call ebx
jmp case.0x10029836.20096
mov ebx, dword [esi + 0x11c4]
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x108]
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x108]
push ecx
push edx
lea ecx, [esp + 0x10c]
lea edx, [esp + 0x4c]
dec ebx
push ecx
push edx
push ebx
push eax
mov ecx, esi
mov ebp, eax
call fcn.10020330
test eax, eax
je 0x100278b3
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x1180]
push 0x100e07b8
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + eax*4]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x10027850
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x10027850
dec ebx
lea edx, [esp + 0x10c]
mov ecx, esi
push edx
push ebx
push ebp
call fcn.100252e0
test eax, eax
je 0x100278a6
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
lea eax, [esp + 0x2c]
push eax
push ecx
push edx
push 2
mov ecx, esi
call fcn.10025420
mov eax, dword [esp + 0x2c]
mov edx, dword [edi + 0x10]
mov ebp, dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
lea ecx, [esp + 0x18]
push eax
push ecx
push edx
call ebp
mov eax, dword [esp + 0x2c]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x100278c6
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0x18]
push 0
push ecx
push edx
jmp 0x100278be
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x18]
push 0
push eax
push ecx
mov ebp, dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
call ebp
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x108]
lea ecx, [esp + 0x3c]
push edx
inc ebx
lea edx, [esp + 0x108]
push ecx
mov dword [esp + 0x20], ebx
mov ebx, dword [esi + 0x11b0]
push edx
lea ecx, [esp + 0x10c]
lea edx, [esp + 0x4c]
push ecx
dec ebx
push edx
push eax
push ebx
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.10020330
test eax, eax
je 0x100279ae
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x1180]
push 0x100e07b8
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + eax*4]
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x10027945
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x10027945
dec ebx
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x10c]
push edx
push eax
push ebx
mov ecx, esi
call fcn.100252e0
test eax, eax
je 0x1002799c
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x10c]
lea ecx, [esp + 0x2c]
push ecx
push edx
push eax
push 2
mov ecx, esi
call fcn.10025420
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
call ebp
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x10029836.20096
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x18]
push 0
push edx
push eax
call ebp
jmp case.0x10029836.20096
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0x18]
push 0
push ecx
push edx
call ebp
jmp case.0x10029836.20096
add eax, 0xffffb1db
cmp eax, 8
ja case.0x100295fa.20070
jmp dword [eax*4 + 0x1002a670]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1bc]
push 0
lea ecx, [esp + 0x120]
shl edx, 4
push eax
push ecx
add edx, ebx
push 2
push edx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
lea eax, [esp + 0x210]
lea ecx, [esp + 0x164]
push eax
lea edx, [esp + 0x238]
push ecx
lea eax, [esp + 0x238]
push edx
mov edx, dword [esp + 0x1c8]
lea ecx, [esp + 0x130]
push eax
mov eax, dword [esp + 0x12c]
push ecx
push edx
push eax
mov ecx, esi
mov word [ebp], 8
call fcn.10020330
test eax, eax
jne 0x10027a58
mov dword [edi + 0x10], eax
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esp + 0x124]
mov edx, dword [esi + 0x1180]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 0x14]
mov ecx, dword [esp + 0x164]
mov edx, dword [eax + ecx*4]
push edx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
shl eax, 4
add ebx, eax
cmp word [ebx], 3
je 0x10027a9c
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [ebx + 8]
mov word [ebp], 3
test eax, eax
jl 0x100285a2
cmp eax, 2
jge 0x100285a2
mov ecx, dword [edi + 4]
add ecx, 0xffffb1da
cmp ecx, 4
ja case.0x10029836.20096
jmp dword [ecx*4 + 0x1002a694]
shl eax, 4
mov ecx, dword [eax + esi + 0x11a8]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov edx, dword [esi + eax*4 + 0x118c]
mov dword [edi + 0x10], edx
jmp case.0x10029836.20096
mov ecx, dword [esi + 0x1180]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 8]
mov dword [edi + 0x10], edx
jmp case.0x10029836.20096
add eax, 0x11b
shl eax, 4
mov eax, dword [eax + esi]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
shl eax, 4
mov ecx, dword [eax + esi + 0x11b4]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov edx, dword [esp + 0x14]
shl edx, 4
add ebx, edx
cmp word [ebx], 3
je 0x10027b41
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [ebx + 8]
mov word [ebp], 3
cmp eax, 0xffffffff
jne 0x10027b69
mov eax, dword [esi + 0x1448]
mov ecx, dword [esi + 0x144c]
cmp eax, ecx
ja 0x10027b61
mov eax, ecx
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
test eax, eax
jl 0x10029bd4
cmp eax, 1
jg 0x10029bd4
mov eax, dword [esi + eax*4 + 0x1448]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xe0]
push 0
lea edx, [esp + 0xfc]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esp + 0xf8]
mov word [ebp], 3
test eax, eax
jl 0x100285a2
cmp eax, 3
jge 0x100285a2
mov ecx, dword [esp + 0xe0]
test ecx, ecx
jl 0x100285a2
mov ebx, dword [esi + 0x1180]
lea edx, [eax + eax*2]
cmp ecx, dword [ebx + edx*8 + 8]
jge 0x100285a2
lea edx, [esp + 0xbc]
push edx
push ecx
push eax
mov ecx, esi
call fcn.100254b0
mov eax, dword [edi + 4]
add eax, 0xffffb1d2
cmp eax, 3
ja case.0x10029836.20096
jmp dword [eax*4 + 0x1002a6a8]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xf8]
push eax
push ecx
mov ecx, esi
call fcn.10021210
mov edx, dword [esi + 0x11a0]
mov eax, dword [edx + eax*4]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + 4]
mov dword [edi + 0x10], edx
jmp case.0x10029836.20096
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 8]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + 0x10]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
add eax, 0xffffb1ce
cmp eax, 0xe
ja case.0x100295fa.20070
jmp dword [eax*4 + 0x1002a6b8]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x16c]
push 0
lea edx, [esp + 0x130]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esp + 0x12c]
mov word [ebp], 8
test eax, eax
jl 0x10027f7c
cmp eax, 3
jge 0x10027f7c
mov ecx, dword [esp + 0x16c]
test ecx, ecx
jl 0x10027f7c
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1180]
lea eax, [eax + edx*8]
cmp ecx, dword [eax + 8]
jge 0x10027f7c
mov edx, dword [edi + 4]
sub edx, 0x4e32
je 0x10027d41
dec edx
jne case.0x10029836.20096
mov edx, dword [eax + 0x14]
lea ebx, [esi + 0x1200]
mov eax, dword [edx + ecx*4]
push eax
push str.__S_
push ebx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
push ebx
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [eax + 0x14]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x9c]
push 0
lea edx, [esp + 0x78]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esp + 0x74]
test eax, eax
jl 0x10027f76
cmp eax, 3
jge 0x10027f76
mov ecx, dword [esp + 0x9c]
test ecx, ecx
jl 0x10027f76
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1180]
cmp ecx, dword [eax + edx*8 + 8]
jge 0x10027f76
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x1424]
mov dword [esp + 0x424], 3
test eax, eax
je 0x10027eff
lea ecx, [esp + 0x1fc]
call fcn.100ae9aa
mov eax, dword [esp + 0x74]
xor edx, edx
lea ecx, [esp + 0x1fc]
cmp eax, 2
push ecx
mov ecx, dword [esp + 0xa0]
sete dl
push edx
push ecx
push ecx
mov ecx, dword [esi + 0x11b0]
push eax
mov eax, dword [esi + 0x11c4]
push eax
push ecx
mov ecx, esi
mov byte [esp + 0x440], 4
call fcn.10020520
test eax, eax
jne 0x10027e43
lea ecx, [esp + 0x1fc]
mov byte [edi], 7
mov byte [esp + 0x424], 3
call sub.MFC42.DLL_CStringArray::CStringArray
jmp 0x10027f5d
mov edx, dword [esp + 0x204]
dec edx
test edx, edx
jl 0x10027e74
lea eax, [esp + 0x174]
push 0
push eax
lea ecx, [esp + 0x204]
call fcn.1000be00
or dword [esp + 0x20], 1
mov byte [esp + 0x424], 5
jmp 0x10027e95
push 0x100f029c
lea ecx, [esp + 0x138]
call sub.MFC42.DLL_CString::CString_2
or dword [esp + 0x20], 2
mov dword [esp + 0x424], 6
push eax
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::operator_2
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x424], 5
test bl, 2
je 0x10027ec6
and ebx, 0xfffffffd
lea ecx, [esp + 0x134]
mov dword [esp + 0x20], ebx
call fcn.100ae920
test bl, 1
mov dword [esp + 0x424], 4
je 0x10027ee9
and ebx, 0xfffffffe
lea ecx, [esp + 0x174]
mov dword [esp + 0x20], ebx
call fcn.100ae920
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x424], 3
call sub.MFC42.DLL_CStringArray::CStringArray
jmp 0x10027f24
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x74]
push 0
push ecx
push edx
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXDimension::GetDimName_class_CString__]
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x25d8]
lea edx, [esp + 0x31c]
push edx
mov edx, dword [esi + 0x25d4]
push eax
push ecx
push edx
call fcn.10099070
add esp, 0x10
lea eax, [esp + 0x31c]
mov word [ebp], 8
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
jmp case.0x10029836.20096
mov word [ebp], 8
mov dword [edi + 0x10], 0
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x13c]
push 0
lea edx, [esp + 0xec]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov ecx, dword [esp + 0xe8]
test ecx, ecx
jl 0x10028061
mov eax, dword [esp + 0x13c]
test eax, eax
jl 0x10028061
push 0
push eax
push ecx
lea ecx, [esi + 0x18]
mov word [ebp], 0xb
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
test eax, eax
je 0x10029bd4
cmp dword [esp + 0xe8], 3
jge 0x10029bd4
mov ecx, dword [edi + 4]
sub ecx, 0x4e37
je 0x10028051
dec ecx
je 0x10028029
dec ecx
jne case.0x10029836.20096
mov ecx, dword [eax + 0x2c]
mov edx, 0
dec ecx
sets dl
dec edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x10028758
lea ecx, [eax + 0x24]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXFilters::HasActiveFilter_void_]
test eax, eax
je 0x10028758
or eax, 0xffffffff
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov eax, dword [eax + 0x44]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
push 0
lea ecx, [esi + 0x18]
push 0
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
mov ebx, dword [eax + 8]
push 0
push 1
lea ecx, [esi + 0x18]
dec ebx
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
mov eax, dword [eax + 8]
mov word [ebp], 0x200b
dec eax
xor ebp, ebp
lea ecx, [ebx + eax + 2]
push ecx
push ebp
push 0xb
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov dword [esp + 0xa4], ebp
push 0
push ebp
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
mov edx, dword [eax + 8]
xor ebx, ebx
dec edx
mov dword [esp + 0x24], eax
js 0x1002815e
push 0
push ebx
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
jne 0x100280da
mov dword [esp + 0x44], 0
jmp 0x10028127
mov ecx, dword [edi + 4]
sub ecx, 0x4e37
je 0x1002811c
dec ecx
je 0x100280fe
dec ecx
jne 0x10028127
mov eax, dword [eax + 0x2c]
mov ecx, 0
dec eax
sets cl
dec ecx
mov dword [esp + 0x44], ecx
jmp 0x10028127
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x100280d0
lea ecx, [eax + 0x24]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXFilters::HasActiveFilter_void_]
test eax, eax
je 0x100280d0
mov dword [esp + 0x44], 0xffffffff
jmp 0x10028127
mov edx, dword [eax + 0x44]
neg edx
sbb edx, edx
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x10]
lea eax, [esp + 0x44]
lea ecx, [esp + 0xa4]
push eax
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x24]
inc ecx
inc ebx
mov dword [esp + 0xa4], ecx
mov ecx, dword [eax + 8]
dec ecx
cmp ebx, ecx
jle 0x100280bf
inc ebp
cmp bp, 1
jle 0x100280a3
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x17c]
push 0
lea eax, [esp + 0x148]
shl ecx, 4
push edx
push eax
add ecx, ebx
push 2
push ecx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x144]
lea edx, [esp + 0x184]
mov word [ebp], 0xb
push edx
push eax
push ecx
mov ecx, esi
call fcn.10022950
test eax, eax
jne 0x100281ce
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [esp + 0x184]
neg edx
sbb edx, edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov word [ebp], 8
mov eax, dword [esi + 0x1424]
test eax, eax
je 0x10028205
lea ecx, [esi + 0x142c]
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi + 0x1088]
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
lea eax, [esp + 0x238]
lea ecx, [esp + 0x1a2]
push eax
push ecx
mov ecx, esi
mov word [ebp], 0xb
call fcn.10022b30
neg eax
sbb eax, eax
neg eax
dec eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi + 0x20]
mov eax, dword [edx + 0xa0]
and al, 1
neg al
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
shl ecx, 4
cmp word [ecx + ebx], 8
lea eax, [ecx + ebx]
je 0x1002827d
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [eax + 8]
lea ecx, [esp + 0x14c]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
lea ecx, [esp + 0x18c]
lea edx, [esp + 0xc2]
push ecx
push edx
push eax
lea ecx, [esi + 0x18]
mov dword [esp + 0x430], 0x16
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_char_const___short_int___long_int__]
lea ecx, [esp + 0x14c]
mov ebx, eax
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
test ebx, ebx
jne 0x100282d9
mov byte [edi], 5
jmp case.0x10029836.20096
movsx eax, word [esp + 0xc2]
test eax, eax
mov word [ebp], 0x2008
jl 0x10029416
cmp eax, 1
jle 0x10028493
cmp eax, 2
jne 0x10029416
lea ecx, [esp + 0x1d4]
call fcn.100ae9aa
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x424], 0x18
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 8]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x1002834a
lea ecx, [esp + 0x1d4]
mov eax, edx
push ecx
push 0x5b
push 0x2c
push 0x5d
push eax
call fcn.1009a200
add esp, 0x14
jmp 0x10028362
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x1dc]
push eax
push edx
lea ecx, [esp + 0x1dc]
call sub.MFC42.DLL_CStringArray::SetAtGrow_1
mov eax, dword [esp + 0x1dc]
push eax
push 0
push 8
mov ebx, eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x25b4]
mov ecx, dword [eax + 0x18]
add ecx, 8
push ecx
call fcn.100af44e
mov dword [esp + 0x10], eax
xor eax, eax
test ebx, ebx
mov dword [esp + 0xac], eax
jle 0x10028462
lea edx, [esp + 0x154]
push eax
push edx
lea ecx, [esp + 0x1dc]
call fcn.1000be00
mov eax, dword [eax]
mov byte [esp + 0x424], 0x19
push eax
call fcn.100af44e
lea ecx, [esp + 0x154]
mov ebp, eax
mov byte [esp + 0x424], 0x18
call fcn.100ae920
push 0x100e02bc
push ebp
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x10028489
mov edx, dword [esi + 0x25d8]
mov eax, dword [esi]
push 0
lea ecx, [esp + 0x80]
push 0
push ecx
mov ecx, dword [esi + 0x25d4]
push 3
push ebp
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x10028428
mov eax, ebp
mov ecx, dword [edi + 0x10]
push eax
lea eax, [esp + 0xb0]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call ebp
mov edx, dword [esp + 0x7c]
push edx
call ebp
mov eax, dword [esp + 0xac]
inc eax
cmp eax, ebx
mov dword [esp + 0xac], eax
jl 0x100283a0
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x424], 0xffffffff
call sub.MFC42.DLL_CStringArray::CStringArray
jmp case.0x10029836.20096
mov dword [esp + 0x7c], 0
jmp 0x10028426
mov ebp, dword [ebx + 8]
push ebp
push 0
push 8
mov dword [esp + 0x30], ebp
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
lea ecx, [esp + 0x194]
mov dword [edi + 0x10], eax
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov dword [esp + 0x424], 0x17
test ebp, ebp
mov dword [esp + 0xb4], eax
jle 0x1002850e
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 4]
push eax
call fcn.100af44e
mov ebp, eax
mov eax, dword [edi + 0x10]
lea edx, [esp + 0xb4]
push ebp
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0xb4], eax
jl 0x100284cc
lea ecx, [esp + 0x194]
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x15c]
push 0
lea edx, [esp + 0x1b0]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
lea ecx, [esp + 0x1b4]
lea edx, [esp + 0x168]
push ecx
lea eax, [esp + 0x22c]
push edx
lea ecx, [esp + 0x234]
push eax
mov eax, dword [esp + 0x168]
lea edx, [esp + 0x1a4]
push ecx
mov ecx, dword [esp + 0x1bc]
push edx
push eax
push ecx
mov ecx, esi
mov word [ebp], 3
call fcn.10020330
test eax, eax
jne 0x100285ae
mov dword [edi + 0x10], 0xffffffff
jmp case.0x10029836.20096
mov eax, dword [edi + 4]
sub eax, 0x4e25
je 0x100285e4
sub eax, 7
je 0x100285d5
sub eax, 0x15
jne case.0x10029836.20096
mov edx, dword [esp + 0x1b4]
mov dword [edi + 0x10], edx
jmp case.0x10029836.20096
mov eax, dword [esp + 0x168]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x198]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
add eax, 0xffffb1be
cmp eax, 0x16
ja case.0x100295fa.20070
jmp dword [eax*4 + 0x1002a6f4]
mov word [ebp], 0xb
mov eax, dword [esi + 0x25b4]
test eax, eax
je 0x10028758
mov eax, dword [eax + 0x18]
test eax, eax
je 0x10028758
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x10028758
or eax, 0xffffffff
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [esi + 0x25b4]
test eax, eax
je 0x10028758
mov eax, dword [eax + 0x18]
test eax, eax
je 0x10028758
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x10028758
or eax, 0xffffffff
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [esi + 0x20]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXPackage::HasActiveFilter_void_]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x170]
push 0
lea eax, [esp + 0x1a8]
shl ecx, 4
push edx
push eax
add ecx, ebx
push 2
push ecx
mov ecx, esi
mov word [ebp], 0xb
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esi + 0x1424]
test eax, eax
je 0x100286d9
xor eax, eax
jmp 0x100286f8
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x1a4]
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
jne 0x1002870a
mov ecx, dword [esi + 0x1424]
test ecx, ecx
jne 0x1002870a
mov byte [edi], 5
jmp case.0x10029836.20096
mov ecx, dword [edi + 4]
sub ecx, 0x4e3e
je 0x10028763
dec ecx
je 0x10028741
sub ecx, 0x15
jne case.0x10029836.20096
test eax, eax
je 0x10028735
mov eax, dword [eax + 0x50]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
or eax, 0xffffffff
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
test eax, eax
je 0x10028758
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x10028758
or eax, 0xffffffff
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
xor eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
test eax, eax
je 0x10028758
mov ecx, dword [eax + 0x48]
jmp 0x1002862d
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x178]
push 0
lea edx, [esp + 0x1b4]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov edx, dword [esp + 0x178]
mov eax, dword [esp + 0x1b0]
lea ecx, [esp + 0x268]
push ecx
push edx
push eax
mov ecx, esi
call fcn.100252e0
test eax, eax
je 0x10029bd4
mov word [ebp], 3
mov eax, dword [esi + 0x11e0]
imul eax, dword [esp + 0x26c]
add eax, dword [esp + 0x268]
js 0x10028816
mov edx, dword [esi + 0x11cc]
cmp eax, edx
jge 0x10028816
mov ecx, dword [esi + 0x11c8]
test ecx, ecx
je 0x10028816
test edx, edx
jle 0x10028816
mov edx, dword [esi + 0x11d0]
dec edx
je 0x10028806
dec edx
jne 0x10028816
shl eax, 5
add eax, ecx
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov eax, 0x100f02b0
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi + 0x1444]
neg edx
sbb edx, edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [esi + 0x1444]
test eax, eax
je 0x10028758
push 1
lea ecx, [esi + 0x1418]
call fcn.1001e810
test eax, eax
jmp 0x1002862f
mov word [ebp], 0xb
mov eax, dword [esi + 0x1444]
test eax, eax
je 0x10028758
push 0xffffffffffffffff
lea ecx, [esi + 0x1418]
call fcn.1001e810
test eax, eax
jmp 0x1002862f
mov eax, dword [esp + 0x14]
shl eax, 4
add eax, ebx
cmp word [eax], 3
je 0x100288a6
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [eax + 8]
lea ecx, [esi + 0x18]
push eax
mov word [ebp], 3
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CMDXBuilder::GetNbOrder_short_int_]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
shl ecx, 4
cmp word [ecx + ebx], 3
lea eax, [ecx + ebx]
je 0x100288da
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [eax + 8]
lea ecx, [esi + 0x18]
push eax
mov word [ebp], 0xb
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CMDXBuilder::GetNbOrder_short_int_]
xor edx, edx
cmp eax, 3
setge dl
dec edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [esi + 0x1458]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
push 0xa
lea ecx, [esp + 0x240]
mov word [ebp], 0x2008
call fcn.100aea28
lea ecx, [esp + 0x88]
mov dword [esp + 0x424], 0xa
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esi + 0x25ec]
mov ebx, dword [esi + 0x20]
xor eax, eax
mov byte [esp + 0x424], 0xb
test ecx, ecx
mov dword [esp + 0x38], eax
jle 0x100289eb
mov ecx, dword [esi + 0x25e8]
mov ax, word [ecx + eax*2]
cmp ax, 0xf000
jg 0x1002899a
mov ecx, dword [ebx + 0xc]
movsx edx, ax
lea eax, [edx*4 + 0x4000]
lea edx, [esp + 0x88]
sub ecx, eax
push edx
mov ecx, dword [ecx]
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXCalculated::GetUniqueName_class_CString__]
mov ebp, dword [esp + 0x88]
jmp 0x100289b4
movsx ebp, ax
lea eax, [ebp + ebp*8]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0x25c4]
lea ebp, [ebp + ecx*4]
shl ebp, 4
add ebp, eax
push 0
push ebp
lea ecx, [esp + 0x244]
call sub.MFC42.DLL_CStringList::Find
test eax, eax
jne 0x100289d4
push ebp
lea ecx, [esp + 0x240]
call sub.MFC42.DLL_CStringList::AddTail_1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x25ec]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x10028962
mov edx, dword [esp + 0x248]
push edx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov ebp, dword [esp + 0x240]
mov dword [edi + 0x10], eax
test ebp, ebp
mov dword [esp + 0x38], 0
je 0x10028a47
mov eax, ebp
mov ebp, dword [ebp]
mov eax, dword [eax + 8]
push eax
call fcn.100af44e
mov ecx, dword [edi + 0x10]
mov ebx, eax
lea eax, [esp + 0x38]
push ebx
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [esp + 0x38]
inc ecx
test ebp, ebp
mov dword [esp + 0x38], ecx
jne 0x10028a13
lea ecx, [esp + 0x88]
mov byte [esp + 0x424], 0xa
call fcn.100ae920
lea ecx, [esp + 0x23c]
mov dword [esp + 0x424], 0xffffffff
call sub.MFC42.DLL_CStringList::CStringList
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x180]
push 0
lea eax, [esp + 0x1ac]
shl ecx, 4
push edx
push eax
add ecx, ebx
push 2
push ecx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x1a8]
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
jne 0x10028acd
mov byte [edi], 5
jmp case.0x10029836.20096
mov word [ebp], 3
mov ecx, dword [eax + 0x58]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x60]
shl edx, 4
push 0
lea ecx, [esp + 0x50]
push eax
add ebx, edx
push ecx
push 2
push ebx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov ecx, dword [ebx + 8]
lea edx, [esp + 0x258]
lea eax, [esp + 0x188]
push edx
push eax
push ecx
mov dword [esp + 0x194], 2
mov word [esp + 0x264], 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
test eax, eax
jge 0x10028b42
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x260]
push edx
mov word [ebp], 3
push eax
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [edi + 0x10], 0
call fcn.10025350
test eax, eax
jne 0x10028ca4
lea ecx, [esp + 0xfc]
lea edx, [esp + 0x30]
push ecx
lea eax, [esp + 0xf4]
push edx
lea ecx, [esp + 0xe0]
push eax
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.10020330
test eax, eax
jne 0x10028bb2
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x1b8]
push edx
push eax
push ecx
mov ecx, esi
call fcn.10022950
test eax, eax
jne 0x10028bd7
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [esp + 0x28]
push 0
push edx
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
jne 0x10028bf3
mov byte [edi], 5
jmp case.0x10029836.20096
test byte [eax + 0x3c], 1
jne case.0x10029836.20096
mov eax, dword [esp + 0x1b8]
test eax, eax
je 0x10028c10
test al, 0x80
je case.0x10029836.20096
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0xc4]
push eax
push ecx
push edx
mov ecx, esi
call fcn.100252e0
test eax, eax
jne 0x10028c35
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esi + 0x11e0]
mov ecx, dword [esp + 0xc4]
imul eax, dword [esp + 0xc8]
add eax, ecx
js 0x10028c79
mov edx, dword [esi + 0x11cc]
cmp eax, edx
jge 0x10028c79
mov ecx, dword [esi + 0x11c8]
test ecx, ecx
je 0x10028c79
test edx, edx
jle 0x10028c79
mov edx, dword [esi + 0x11d0]
dec edx
je 0x10028c72
dec edx
jne 0x10028c79
shl eax, 5
add eax, ecx
jmp 0x10028c7e
mov eax, 0x100f02b0
test dword [eax + 0x10], ebx
je 0x10028c95
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x10]
inc eax
or ecx, eax
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov ecx, dword [edi + 0x10]
xor eax, eax
or ecx, eax
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
push 0
lea ecx, [esi + 0x18]
push 0
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
jne 0x10028cbd
mov byte [edi], 5
jmp case.0x10029836.20096
test byte [eax + 0x3c], 1
jne 0x10028e29
mov ebp, dword [esi + 0x11c4]
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0xfc]
lea edx, [esp + 0x30]
push ecx
lea ecx, [esp + 0xf4]
push edx
push ecx
lea edx, [esp + 0xe4]
lea ecx, [esp + 0x34]
dec ebp
push edx
push ecx
push ebp
push eax
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.10020330
test eax, eax
je 0x10028e29
mov eax, dword [esp + 0x28]
push 0x100e07b8
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1180]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + edx*4]
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x10028d43
test eax, eax
jle 0x10028d43
mov ebx, 1
jmp 0x10028d45
xor ebx, ebx
xor edx, edx
lea ecx, [esp + 0x68]
test ebx, ebx
setne dl
sub eax, edx
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.10022950
test eax, eax
jne 0x10028d6c
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esp + 0x68]
test eax, eax
je 0x10028d7c
test al, 0x80
je 0x10028e29
test ebx, ebx
je 0x10028d81
dec ebp
cmp dword [esp + 0x1c], 1
jne 0x10028db0
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc4]
push ecx
push ebp
push edx
mov ecx, esi
call fcn.100252e0
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
lea ebp, [ecx - 1]
jmp 0x10028db4
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc4]
mov ecx, esi
push edx
push ebp
push eax
call fcn.100252e0
test eax, eax
je 0x10028e29
mov eax, dword [esi + 0x11e0]
mov ecx, dword [esp + 0xc4]
imul eax, dword [esp + 0xc8]
add eax, ecx
js 0x10028e0d
mov edx, dword [esi + 0x11cc]
cmp eax, edx
jge 0x10028e0d
mov ecx, dword [esi + 0x11c8]
test ecx, ecx
je 0x10028e0d
test edx, edx
jle 0x10028e0d
mov edx, dword [esi + 0x11d0]
dec edx
je 0x10028e06
dec edx
jne 0x10028e0d
shl eax, 5
add eax, ecx
jmp 0x10028e12
mov eax, 0x100f02b0
mov eax, dword [eax + 0x10]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [edi + 0x10]
and eax, ebp
neg eax
sbb eax, eax
neg eax
or ecx, eax
mov dword [edi + 0x10], ecx
push 0
push 1
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
jne 0x10028e42
mov byte [edi], 5
jmp case.0x10029836.20096
test byte [eax + 0x3c], 1
jne case.0x10029836.20096
mov ebp, dword [esi + 0x11b0]
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xfc]
lea edx, [esp + 0x30]
push ecx
lea ecx, [esp + 0xf4]
push edx
push ecx
lea edx, [esp + 0xe4]
lea ecx, [esp + 0x34]
push edx
dec ebp
push ecx
push eax
push ebp
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.10020330
test eax, eax
je case.0x10029836.20096
mov eax, dword [esp + 0x28]
push 0x100e07b8
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x1180]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + edx*4]
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x10028ec8
test eax, eax
jle 0x10028ec8
mov ebx, 1
jmp 0x10028eca
xor ebx, ebx
xor edx, edx
lea ecx, [esp + 0x68]
test ebx, ebx
setne dl
sub eax, edx
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.10022950
test eax, eax
jne 0x10028ef1
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esp + 0x68]
test eax, eax
je 0x10028f01
test al, 0x80
je case.0x10029836.20096
test ebx, ebx
je 0x10028f06
dec ebp
cmp dword [esp + 0x1c], 1
jne 0x10028f35
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc4]
push ecx
push edx
push ebp
mov ecx, esi
call fcn.100252e0
mov eax, dword [esp + 0xc4]
lea ebp, [eax - 1]
mov eax, dword [esp + 0xc8]
jmp 0x10028f39
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xc4]
push ecx
push eax
push ebp
mov ecx, esi
call fcn.100252e0
test eax, eax
je case.0x10029836.20096
mov eax, dword [esi + 0x11e0]
mov ecx, dword [esp + 0xc4]
imul eax, dword [esp + 0xc8]
add eax, ecx
js 0x10028f96
mov edx, dword [esi + 0x11cc]
cmp eax, edx
jge 0x10028f96
mov ecx, dword [esi + 0x11c8]
test ecx, ecx
je 0x10028f96
test edx, edx
jle 0x10028f96
mov edx, dword [esi + 0x11d0]
dec edx
je 0x10028f8f
dec edx
jne 0x10028f96
shl eax, 5
add eax, ecx
jmp 0x10028f9b
mov eax, 0x100f02b0
mov edx, dword [eax + 0x10]
mov ebp, dword [esp + 0x1c]
mov eax, dword [edi + 0x10]
and edx, ebp
neg edx
sbb edx, edx
and edx, 2
or eax, edx
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [esi + 0x145c]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [esi + 0x1460]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x10c]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 8
mov eax, dword [eax + 0x1644]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 3
mov eax, dword [eax + 0x1648]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
push 3
lea ecx, [esi + 0x147c]
mov word [ebp], 0xb
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::IsInit_long_int_]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
mov word [ebp], 0x2008
shl ecx, 4
add ebx, ecx
mov dword [edi + 0x10], 0
cmp word [ebx], 3
je 0x100290a3
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [esi + 0x1424]
mov ebp, dword [ebx + 8]
test eax, eax
mov dword [esp + 0x10], ebp
je 0x1002923f
lea ecx, [esp + 0x1e8]
call fcn.100ae9aa
mov ecx, dword [esi + 0x11c4]
xor eax, eax
cmp ebp, 2
lea edx, [esp + 0x1e8]
sete al
push edx
mov edx, dword [esi + 0x11b0]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x440], 0xf
call fcn.10020520
test eax, eax
jne 0x10029106
mov byte [edi], 7
jmp 0x10029223
mov eax, dword [esp + 0x1f0]
push eax
push 0
push 8
mov ebx, eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
xor eax, eax
test ebx, ebx
mov dword [esp + 0xa8], eax
jle 0x10029223
jmp 0x10029134
mov ebp, dword [esp + 0x10]
cmp ebp, 2
push eax
jne 0x10029176
lea eax, [esp + 0x194]
lea ecx, [esp + 0x1ec]
push eax
call fcn.1000be00
mov eax, dword [eax]
mov byte [esp + 0x424], 0x10
push eax
call fcn.100af44e
lea ecx, [esp + 0x190]
mov ebp, eax
mov byte [esp + 0x424], 0xf
call fcn.100ae920
jmp 0x100291f2
lea ecx, [esp + 0x1a0]
push ecx
lea ecx, [esp + 0x1f0]
call fcn.1000be00
mov eax, dword [eax]
mov edx, dword [esi + 0x25d8]
push 0
push 0
push eax
mov eax, dword [esi + 0x25d4]
push edx
push eax
mov byte [esp + 0x438], 0x11
call fcn.100991a0
add esp, 0x14
lea ecx, [esp + 0x19c]
mov ebp, eax
mov byte [esp + 0x424], 0xf
call fcn.100ae920
test ebp, ebp
jge 0x100291cd
xor ebp, ebp
jmp 0x100291f2
lea eax, [ebp*8]
sub eax, ebp
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x25d4]
lea edx, [ebp + ecx*8]
lea ecx, [eax + edx*4 + 0x81]
push ecx
call fcn.100af44e
mov ebp, eax
mov eax, dword [edi + 0x10]
lea edx, [esp + 0xa8]
push ebp
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0xa8]
inc eax
cmp eax, ebx
mov dword [esp + 0xa8], eax
jl 0x10029130
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x424], 0xffffffff
call sub.MFC42.DLL_CStringArray::CStringArray
jmp case.0x10029836.20096
push 0
push ebp
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x1002925b
mov byte [edi], 5
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
test eax, eax
mov ebx, dword [ecx + 8]
jl case.0x10029836.20096
cmp eax, 1
jle 0x1002942a
cmp eax, 2
jne case.0x10029836.20096
test ebx, ebx
jle 0x10029416
mov edx, ecx
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ebx, dword [eax + 8]
push ebx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x25b4]
mov edx, dword [ecx + 0x18]
add edx, 8
push edx
call fcn.100af44e
mov dword [esp + 0x10], eax
xor eax, eax
test ebx, ebx
mov dword [esp + 0x90], eax
jle 0x100293ba
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [eax + 8]
mov ebp, dword [edx - 8]
lea ecx, [eax + 8]
test ebp, ebp
jne 0x100292e5
lea ecx, [eax + 4]
mov eax, dword [ecx]
push eax
call fcn.100af44e
mov ebp, eax
push 0x100e02bc
push ebp
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x10029409
mov edx, dword [esi + 0x25d8]
mov eax, dword [esi]
push 0
lea ecx, [esp + 0x54]
push 0
push ecx
mov ecx, dword [esi + 0x25d4]
push 3
push ebp
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
mov ecx, esi
call dword [eax + 0xf0]
test eax, eax
jne 0x10029376
mov ecx, dword [esi + 0x25d4]
push eax
push eax
mov eax, dword [esi + 0x25d8]
push ebp
push eax
push ecx
call fcn.10099250
add esp, 0x14
test eax, eax
jl 0x100293ca
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x25d4]
lea eax, [eax + edx*8]
lea edx, [ecx + eax*4 + 0x20c]
push edx
call fcn.100af44e
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x10029380
mov eax, ebp
mov ecx, dword [edi + 0x10]
push eax
lea eax, [esp + 0x94]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call ebp
mov edx, dword [esp + 0x50]
push edx
call ebp
mov eax, dword [esp + 0x90]
inc eax
cmp eax, ebx
mov dword [esp + 0x90], eax
jl 0x100292cb
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x10029836.20096
mov eax, dword [esi + 8]
test eax, eax
je 0x10029376
cmp dword [eax + 0x654], 0x32
jge 0x10029376
push 0x1021
push 0x40
add eax, 0x640
push 0
push eax
call fcn.1009bf70
add esp, 0x10
test eax, eax
je 0x10029376
push ebp
push 0x1007
push eax
call fcn.1009c140
add esp, 0xc
jmp 0x10029376
mov dword [esp + 0x50], 0
jmp 0x1002937e
push 0
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
push ebx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
lea ecx, [esp + 0x98]
mov dword [edi + 0x10], eax
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov dword [esp + 0x424], 0x12
test ebx, ebx
mov dword [esp + 0xb8], eax
jle 0x100294b2
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x98]
push ecx
mov eax, dword [edx + eax*4]
mov ecx, eax
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXDimension::GetDimName_class_CString__]
mov edx, dword [esp + 0x98]
push edx
call fcn.100af44e
mov ecx, dword [edi + 0x10]
mov ebp, eax
lea eax, [esp + 0xb8]
push ebp
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0xb8]
inc eax
cmp eax, ebx
mov dword [esp + 0xb8], eax
jl 0x1002945c
lea ecx, [esp + 0x98]
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
jmp case.0x10029836.20096
mov word [ebp], 0x2008
mov ebx, dword [esi + 0x11f4]
test ebx, ebx
jle 0x10029416
push ebx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x25b4]
mov eax, dword [edx + 0x18]
add eax, 8
push eax
call fcn.100af44e
mov dword [esp + 0x10], eax
xor eax, eax
test ebx, ebx
mov dword [esp + 0xa0], eax
jle 0x100295b5
mov ecx, dword [esi + 0x11f0]
mov eax, dword [ecx + eax*4]
push eax
call fcn.100af44e
mov ebp, eax
push 0x100e02bc
push ebp
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x100295c5
mov ecx, dword [esi + 0x25d8]
mov edx, dword [esi]
push 0
lea eax, [esp + 0xb4]
push 0
push eax
mov eax, dword [esi + 0x25d4]
push 3
push ebp
push ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov ecx, esi
call dword [edx + 0xf0]
mov eax, dword [esp + 0xb0]
test eax, eax
jne 0x10029578
mov eax, ebp
push eax
mov eax, dword [edi + 0x10]
lea edx, [esp + 0xa4]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call ebp
mov ecx, dword [esp + 0xb0]
push ecx
call ebp
mov eax, dword [esp + 0xa0]
inc eax
cmp eax, ebx
mov dword [esp + 0xa0], eax
jl 0x10029517
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x10029836.20096
mov dword [esp + 0xb0], 0
jmp 0x10029576
mov word [ebp], 8
mov eax, dword [esi + 0x14ec]
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
add eax, 0xffffb1a6
cmp eax, 0x3a
ja case.0x100295fa.20070
jmp dword [eax*4 + 0x1002a750]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x160]
push 0
lea ecx, [esp + 0x124]
shl edx, 4
push eax
push ecx
add edx, ebx
push 2
push edx
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x120]
lea eax, [edi + 0x10]
mov word [ebp], 8
mov ebx, dword [edi + 4]
push eax
xor eax, eax
cmp ebx, 0x4e87
setne al
push ecx
inc eax
push edx
push eax
mov ecx, esi
call fcn.10025420
jmp case.0x10029836.20096
mov ecx, dword [esp + 0x14]
shl ecx, 4
add ebx, ecx
mov dword [esp + 0x10], ebx
cmp word [ebx], 8
je 0x10029681
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x25d8]
push 0
push 0
mov eax, dword [edx + 8]
mov edx, dword [esi + 0x25d4]
push eax
push ecx
push edx
call fcn.10099250
mov ebx, eax
add esp, 0x14
test ebx, ebx
jl 0x10029bd4
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x25d8]
push 0
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x25d4]
push ecx
push edx
push eax
call fcn.10098e90
add esp, 0x10
mov dword [esp + 0x1c], eax
test ax, ax
jl 0x10029bd4
lea eax, [ebx*8]
sub eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x25d4]
lea edx, [ebx + ecx*8]
mov cl, byte [eax + edx*4 + 0x30d]
test cl, cl
lea eax, [eax + edx*4]
jne 0x10029709
cmp word [esp + 0x1c], 0
jle 0x10029709
dec dword [esp + 0x1c]
add eax, 0x81
push eax
call fcn.100af44e
mov ecx, dword [esi + 0x25b4]
mov ebx, eax
test ecx, ecx
je 0x10029737
lea edx, [esp + 0x128]
lea eax, [esp + 0xdc]
push edx
push eax
push ebx
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CMetaData_Cube::GetLevels_unsigned_short_int___struct___MIDL___MIDL_itf_OpenMD_0000_0008____long_int__]
movsx eax, word [esp + 0x1c]
cmp eax, dword [esp + 0x128]
jge 0x1002976f
lea ecx, [eax + eax*2]
mov word [ebp], 8
shl ecx, 4
add ecx, eax
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0xdc]
lea ecx, [eax + edx*4 + 0x81]
push ecx
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp 0x10029772
mov byte [edi], 5
mov edx, dword [esp + 0xdc]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
shl eax, 4
add eax, ebx
cmp word [eax], 3
je 0x100297a3
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [eax + 8]
mov word [ebp], 0xb
test eax, eax
jl 0x10029bd4
cmp eax, 1
jg 0x10029bd4
mov ecx, dword [esi + eax*4 + 0x1450]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
mov edx, dword [esp + 0x14]
shl edx, 4
cmp word [edx + ebx], 3
lea eax, [edx + ebx]
je 0x100297ea
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [eax + 8]
mov word [ebp], 0
test eax, eax
jl 0x10029bd4
cmp eax, 1
jg 0x10029bd4
push 0
push eax
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
jne 0x1002981c
mov byte [edi], 5
jmp case.0x10029836.20096
mov ecx, dword [edi + 4]
add ecx, 0xffffb184
cmp ecx, 0xf
ja case.0x10029836.20096
xor edx, edx
mov dl, byte [ecx + 0x1002a850]
jmp dword [edx*4 + 0x1002a83c]
mov word [ebp], 0xb
mov eax, dword [eax + 0x3c]
and al, 1
neg al
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [eax + 0x3c]
and cl, 8
neg cl
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
lea ecx, [eax + 0x58]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
lea ecx, [eax + 0x5c]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
lea ebx, [esi + 0x18]
mov word [ebp], 3
mov ebp, dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
push 0
push 0
mov ecx, ebx
mov dword [edi + 0x10], 0
call ebp
test eax, eax
jne 0x100298c4
mov byte [edi], 5
jmp case.0x10029836.20096
mov edx, dword [eax + 0x3c]
mov ecx, dword [edi + 0x10]
and edx, 1
push 0
or ecx, edx
push 1
mov dword [edi + 0x10], ecx
mov ecx, ebx
call ebp
test eax, eax
jne 0x100298e6
mov byte [edi], 5
jmp case.0x10029836.20096
mov eax, dword [eax + 0x3c]
mov ecx, dword [edi + 0x10]
and eax, 1
shl eax, 1
or ecx, eax
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
lea ecx, [esp + 0x1c0]
call fcn.100ae9aa
mov ecx, dword [esi + 0x20]
xor eax, eax
mov dword [esp + 0x424], eax
test byte [ecx + 0xa0], 8
je 0x10029a16
mov dword [esp + 0x10], eax
xor ebx, ebx
mov edx, dword [esp + 0x10]
push 0
push ebx
push edx
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXDimension____thiscall_CMDXBuilder::GetAxisDimPtr_short_int__long_int__int_]
mov edi, eax
test edi, edi
je 0x10029998
mov eax, dword [edi + 0x54]
test eax, eax
je 0x10029998
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x80]
mov ecx, edi
push eax
mov byte [esp + 0x428], 1
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXDimension::GetDimName_class_CString__]
mov edx, dword [esp + 0x1c8]
lea ecx, [esp + 0x80]
push ecx
push edx
lea ecx, [esp + 0x1c8]
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea ecx, [esp + 0x80]
mov byte [esp + 0x424], 0
call fcn.100ae920
inc ebx
test edi, edi
jne 0x10029926
mov eax, dword [esp + 0x10]
inc eax
cmp ax, 2
mov dword [esp + 0x10], eax
jl 0x10029924
mov edi, dword [esi + 0x10d0]
test edi, edi
je 0x10029a16
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CString::CString
mov eax, edi
mov edi, dword [edi]
add eax, 8
lea ecx, [esp + 0x84]
push eax
mov byte [esp + 0x428], 2
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [esp + 0x1c8]
lea eax, [esp + 0x84]
push eax
push ecx
lea ecx, [esp + 0x1c8]
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea ecx, [esp + 0x84]
mov byte [esp + 0x424], 0
call fcn.100ae920
test edi, edi
jne 0x100299ba
push 0
lea edx, [esp + 0x1c4]
push ebp
push edx
call fcn.1009a050
add esp, 0xc
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x424], 0xffffffff
call sub.MFC42.DLL_CStringArray::CStringArray
jmp case.0x10029836.20096
mov word [ebp], 3
mov eax, dword [esi + 0x1470]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [esi + 0x20]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_CMDXPackage::HasActiveSort_void_]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xe4]
push 0
lea edx, [esp + 0xf0]
shl eax, 4
push ecx
push edx
add eax, ebx
push 2
push eax
mov ecx, esi
call fcn.100225f0
cmp al, 1
mov byte [edi], al
jne case.0x10029836.20096
mov eax, dword [esp + 0xec]
mov word [ebp], 0x2008
test eax, eax
jl 0x10029416
cmp eax, 3
jge 0x10029416
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jl 0x10029416
mov ebx, dword [esi + 0x1180]
lea edx, [eax + eax*2]
cmp ecx, dword [ebx + edx*8 + 8]
jge 0x10029416
push ecx
push eax
mov ecx, esi
call fcn.10021210
mov ecx, dword [edi + 4]
cmp ecx, 0x4e35
je 0x10029b15
cmp ecx, 0x4e76
je 0x10029b15
lea edx, [eax + eax*4]
lea ebp, [eax + edx*2]
mov eax, dword [esi + 0x1198]
shl ebp, 3
lea ebx, [eax + ebp + 0x30]
jmp 0x10029b28
lea edx, [eax + eax*4]
lea ebp, [eax + edx*2]
mov eax, dword [esi + 0x1198]
shl ebp, 3
lea ebx, [eax + ebp + 0x14]
mov eax, dword [ebx + 0xc]
test eax, eax
jg 0x10029b55
mov eax, dword [esp + 0xe4]
xor edx, edx
cmp ecx, 0x4e3c
mov ecx, dword [esp + 0xec]
push 0xffffffffffffffff
push ebx
sete dl
push edx
push eax
push ecx
mov ecx, esi
call fcn.10025690
mov edx, dword [esi + 0x1198]
mov ebp, dword [edx + ebp + 0x20]
push ebp
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov dword [esp + 0x8c], 0
mov ebp, dword [ebx + 4]
test ebp, ebp
je case.0x10029836.20096
mov eax, ebp
mov ebp, dword [ebp]
mov eax, dword [eax + 8]
push eax
call fcn.100af44e
mov ecx, dword [edi + 0x10]
mov ebx, eax
lea eax, [esp + 0x8c]
push ebx
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [esp + 0x8c]
inc ecx
test ebp, ebp
mov dword [esp + 0x8c], ecx
jne 0x10029b83
jmp case.0x10029836.20096
mov edx, dword [esp + 0x14]
shl edx, 4
add ebx, edx
cmp word [ebx], 8
je 0x10029bdc
mov byte [edi], 5
jmp case.0x10029836.20096
lea ecx, [esp + 0x214]
call fcn.100ae9aa
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x130]
push eax
mov dword [esp + 0x428], 7
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
lea ecx, [esp + 0x214]
push ecx
push 0
push eax
lea ecx, [esi + 0x10fc]
mov byte [esp + 0x430], 8
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXDimension::FindDescendants_char_const___short_int__class_CStringArray__]
lea ecx, [esp + 0x130]
mov byte [esp + 0x424], 7
call fcn.100ae920
mov ebx, dword [esp + 0x21c]
mov word [ebp], 0x2008
push ebx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
xor eax, eax
test ebx, ebx
mov dword [esp + 0x94], eax
jle 0x10029cc7
lea edx, [esp + 0x138]
push eax
push edx
lea ecx, [esp + 0x21c]
call fcn.1000be00
mov ecx, eax
mov byte [esp + 0x424], 9
call sub.MFC42.DLL_CString::AllocSysString
lea ecx, [esp + 0x138]
mov ebp, eax
mov byte [esp + 0x424], 7
call fcn.100ae920
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x94]
push ebp
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebp
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x94]
inc eax
cmp eax, ebx
mov dword [esp + 0x94], eax
jl 0x10029c60
lea ecx, [esp + 0x214]
mov dword [esp + 0x424], 0xffffffff
call sub.MFC42.DLL_CStringArray::CStringArray
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi + 0x1468]
neg edx
sbb edx, edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [esi + 0x1434]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
mov word [ebp], 0xb
mov ecx, dword [esi + 0x1430]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
mov word [ebp], 3
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x680]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [esi + 0x146c]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [eax + 0x168c]
and al, 1
neg al
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [eax + 0x168c]
and al, 2
neg al
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov word [ebp], 8
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je 0x10029dcf
add eax, 0x16c8
jmp 0x10029df0
push 0x100f029c
lea ecx, [esp + 0x144]
call sub.MFC42.DLL_CString::CString_2
or dword [esp + 0x20], 4
mov dword [esp + 0x424], 0xc
mov eax, dword [eax]
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
mov al, byte [esp + 0x20]
test al, 4
mov dword [esp + 0x424], 0xffffffff
je case.0x10029836.20096
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x140]
and al, 0xfb
mov dword [esp + 0x20], eax
call fcn.100ae920
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 0xb
mov ecx, dword [eax + 0x1690]
neg ecx
sbb ecx, ecx
mov word [edi + 0x10], cx
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 3
mov eax, dword [eax + 0x1694]
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x1698]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x169c]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16a0]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16a4]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16a8]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16bc]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16c0]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16c4]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [eax + 0x16ac]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16b0]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x108]
test eax, eax
je case.0x10029836.20096
lea ecx, [eax + 0x16b4]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x108]
test eax, eax
je case.0x10029836.20096
mov word [ebp], 0xb
mov eax, dword [eax + 0x16b8]
neg eax
sbb eax, eax
mov word [edi + 0x10], ax
jmp case.0x10029836.20096
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x6c]
mov dword [esp + 0x424], 0xd
push ecx
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_void___thiscall_CMDXBuilder::GetTitle_class_CString__]
lea ecx, [esp + 0x6c]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
lea ecx, [esp + 0x6c]
mov dword [edi + 0x10], eax
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
jmp case.0x10029836.20096
mov word [ebp], 3
mov edx, dword [esi + 0x1174]
mov dword [edi + 0x10], edx
jmp case.0x10029836.20096
lea ecx, [esp + 0x70]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x70]
lea ecx, [esi + 0x2518]
push eax
mov dword [esp + 0x428], 0xe
call dword [sym.imp.OOLAPLib.dll_public:_long_int___thiscall_CDataParser::GetDefinition_class_CString__]
test eax, eax
jl 0x1002a13c
lea ecx, [esp + 0x70]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp 0x1002a13f
mov byte [edi], 7
lea ecx, [esp + 0x70]
mov dword [esp + 0x424], 0xffffffff
call fcn.100ae920
jmp case.0x10029836.20096
mov word [ebp], 3
mov ecx, dword [esi + 0x25b8]
mov dword [edi + 0x10], ecx
jmp case.0x10029836.20096
mov word [ebp], 0xb
mov edx, dword [esi + 0x1474]
neg edx
sbb edx, edx
mov word [edi + 0x10], dx
jmp case.0x10029836.20096
lea ecx, [esi + 0x1478]
mov word [ebp], 8
call sub.MFC42.DLL_CString::AllocSysString
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
lea eax, [esp + 0x278]
push eax
call fcn.100967a0
add esp, 4
lea ecx, [esp + 0x278]
push ecx
lea ecx, [esi + 0x147c]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSource_struct___MIDL___MIDL_itf_OpenMD_0000_0002__]
test eax, eax
je 0x10029bd4
mov edx, dword [esp + 0x278]
lea eax, [esp + 0x278]
mov word [ebp], 3
push eax
mov dword [edi + 0x10], edx
call fcn.10096810
add esp, 4
jmp case.0x10029836.20096
lea ecx, [edi + 0x10]
push ecx
lea ecx, [esi + 0x147c]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSourceProvider_long_int__]
test eax, eax
je 0x10029bd4
mov word [ebp], 3
jmp case.0x10029836.20096
lea edx, [esp + 0x2a8]
push edx
call fcn.100967a0
add esp, 4
lea eax, [esp + 0x2a8]
lea ecx, [esi + 0x147c]
push eax
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSource_struct___MIDL___MIDL_itf_OpenMD_0000_0002__]
test eax, eax
je 0x10029bd4
mov ecx, dword [esp + 0x2ac]
mov word [ebp], 8
push ecx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea edx, [esp + 0x2a8]
mov dword [edi + 0x10], eax
push edx
call fcn.10096810
add esp, 4
jmp case.0x10029836.20096
lea eax, [esp + 0x2d8]
push eax
call fcn.100967a0
add esp, 4
lea ecx, [esp + 0x2d8]
push ecx
lea ecx, [esi + 0x147c]
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSource_struct___MIDL___MIDL_itf_OpenMD_0000_0002__]
test eax, eax
je 0x10029bd4
mov edx, dword [esp + 0x2e0]
mov word [ebp], 8
push edx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi + 0x10], eax
lea eax, [esp + 0x2d8]
push eax
call fcn.10096810
add esp, 4
jmp case.0x10029836.20096
lea ecx, [esp + 0x2c0]
push ecx
call fcn.100967a0
add esp, 4
lea edx, [esp + 0x2c0]
lea ecx, [esi + 0x147c]
push edx
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSource_struct___MIDL___MIDL_itf_OpenMD_0000_0002__]
test eax, eax
je 0x10029bd4
mov eax, dword [esp + 0x2cc]
mov word [ebp], 8
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [esp + 0x2c0]
mov dword [edi + 0x10], eax
push ecx
call fcn.10096810
add esp, 4
jmp case.0x10029836.20096
lea edx, [esp + 0x290]
push edx
call fcn.100967a0
add esp, 4
lea eax, [esp + 0x290]
lea ecx, [esi + 0x147c]
push eax
call dword [sym.imp.OOLAPLib.dll_public:_int___thiscall_DrillThrough::CDrillThroughBuilder::GetCubeDataSource_struct___MIDL___MIDL_itf_OpenMD_0000_0002__]
test eax, eax
je 0x10029bd4
mov ecx, dword [esp + 0x2a0]
mov word [ebp], 8
push ecx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea edx, [esp + 0x290]
mov dword [edi + 0x10], eax
push edx
call fcn.10096810
add esp, 4
jmp case.0x10029836.20096
mov word [ebp], 8
mov eax, dword [esi + 0x14f0]
push eax
call fcn.100af44e
mov dword [edi + 0x10], eax
jmp case.0x10029836.20096
push 0
push 2
lea ecx, [esi + 0x18]
call dword [sym.imp.OOLAPLib.dll_public:_class_CMDXAxis____thiscall_CMDXBuilder::GetAxisPtr_short_int__class_CMDXPackage__]
test eax, eax
jne 0x1002a3a5
mov byte [edi], 7
jmp case.0x10029836.20096
mov word [ebp], 0x2008
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x10029416
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x11e8]
mov ebp, dword [eax]
mov dword [esp + 0x148], ebp
mov eax, dword [ebp + 8]
cmp eax, ecx
mov ebx, eax
jl 0x1002a3d3
mov ebx, ecx
lea ecx, [ebx + ebx]
mov dword [esp + 0xf4], ebx
push ecx
push 0
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x25b4]
mov eax, dword [edx + 0x18]
add eax, 8
push eax
call fcn.100af44e
mov dword [esp + 0x24], eax
xor eax, eax
cmp ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
jle 0x1002a639
mov dword [esp + 0x10], eax
jmp 0x1002a420
mov ebp, dword [esp + 0x148]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
mov ebp, dword [ecx + edx*4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx - 8]
lea eax, [ebp + 8]
test edx, edx
mov dword [esp + 0x150], eax
jne 0x1002a441
lea eax, [ebp + 4]
mov eax, dword [eax]
push eax
call fcn.100af44e
mov ebx, eax
push 0x100e02bc
push ebx
mov dword [esp + 0x5c], 0
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x1002a48f
mov ecx, dword [esi + 0x25d8]
mov edx, dword [esi]
push 0
lea eax, [esp + 0x58]
push 0
push eax
mov eax, dword [esi + 0x25d4]
push 3
push ebx
push ecx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
mov ecx, esi
call dword [edx + 0xf0]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1002a499
mov eax, ebx
push eax
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x38]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x5c], 0
inc ecx
mov dword [esp + 0x34], ecx
mov eax, dword [ebp + 0x10]
cmp eax, 0x40
jne 0x1002a598
mov ecx, dword [esp + 0x150]
mov edx, dword [ecx]
mov eax, dword [edx - 8]
test eax, eax
je 0x1002a598
lea ecx, [esp + 0x2f0]
call fcn.10084470
lea ecx, [esp + 0x78]
mov dword [esp + 0x424], 0x13
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x54]
mov byte [esp + 0x424], 0x14
test eax, eax
jne 0x1002a50c
mov eax, ebx
push eax
lea ecx, [esp + 0x15c]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [eax]
push 0
lea ecx, [esp + 0x7c]
push 0x7c
push ecx
mov ecx, dword [esi + 0x25c0]
push 0x8001
push 0
push 0
lea edx, [esp + 0x308]
push eax
push edx
mov byte [esp + 0x444], 0x15
call fcn.100859e0
lea ecx, [esp + 0x158]
mov byte [esp + 0x424], 0x14
call fcn.100ae920
lea ecx, [esp + 0x78]
call sub.MFC42.DLL_CString::AllocSysString
lea ecx, [esp + 0x78]
mov dword [esp + 0x5c], eax
mov byte [esp + 0x424], 0x13
call fcn.100ae920
lea ecx, [esp + 0x2f0]
mov dword [esp + 0x424], 0xffffffff
call fcn.100844e0
mov ebp, dword [esp + 0x1c]
jmp 0x1002a5e6
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jl 0x1002a5d5
mov ecx, dword [esi + 0x11d8]
cmp ebp, ecx
jge 0x1002a5d5
mov eax, dword [esi + 0x11d4]
test eax, eax
je 0x1002a5d5
test ecx, ecx
jle 0x1002a5d5
mov ecx, dword [esi + 0x11dc]
dec ecx
je 0x1002a5cc
dec ecx
jne 0x1002a5d5
mov ecx, dword [esp + 0x10]
add ecx, eax
jmp 0x1002a5da
mov edx, dword [esp + 0x10]
lea ecx, [eax + edx]
jmp 0x1002a5da
mov ecx, 0x100f02b0
mov eax, dword [ecx]
lea edx, [esp + 0x5c]
push edx
push 1
call dword [eax + 0xc]
mov eax, dword [esp + 0x5c]
mov edx, dword [edi + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
mov eax, dword [esp + 0x34]
push ebx
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc eax
mov dword [esp + 0x38], eax
call ebx
mov eax, dword [esp + 0x54]
push eax
call ebx
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf4]
inc ebp
add ecx, 0x20
cmp ebp, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], ecx
jl 0x1002a419
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x10029836.20096
mov byte [edi], 0xa
jmp case.0x10029836.20096
mov eax, 0x80004005
mov ecx, dword [esp + 0x410]
pop esi
mov dword fs:[0], ecx
add esp, 0x418
ret 0xc