Sub Subr_040()
 push ebp
 mov ebp, esp
 sub esp, 0Ch
 push L00410456
  * ref: __vbaExceptHandler
 mov eax, dword ptr fs:[L00000000]
 push eax
 mov dword ptr fs:[L00000000], esp
 sub esp, 88h
 push ebx
 push esi
 push edi
 mov dword ptr [ebp-0Ch], esp
 mov dword ptr [ebp-8], L00401EE0
 xor eax, eax
 mov dword ptr [ebp-1Ch], eax
 mov dword ptr [ebp-20h], eax
 mov dword ptr [ebp-28h], eax
 mov dword ptr [ebp-38h], eax
 mov dword ptr [ebp-48h], eax
 mov dword ptr [ebp-58h], eax
 mov eax, dword ptr [ebp+8]
 mov ecx, dword ptr [eax]
 push ecx
 call dword ptr [L00401028]
  * ref: __vbaLenBstr
 mov ecx, eax
 call dword ptr [L00401158]
  * ref: __vbaI2I4
 mov dword ptr [ebp-70h], eax
 mov eax, 1
 mov dword ptr [ebp-18h], eax
 
 L0050916F:
 cmp ax, word ptr [ebp-70h]
 jg L005092CD
 mov edx, dword ptr [ebp+8]
 lea ecx, dword ptr [ebp-58h]
 movsx edi, ax
 lea eax, dword ptr [ebp-38h]
 mov dword ptr [ebp-50h], edx
 push eax  2
 push edi
 lea edx, dword ptr [ebp-48h]
 push ecx  4008h
 push edx  
 mov dword ptr [ebp-30h], 1
 mov dword ptr [ebp-38h], 2
 mov dword ptr [ebp-58h], 4008h
 call dword ptr [L00401118]
  * ref: Mid(
 lea eax, dword ptr [ebp-48h]
 push eax
 call dword ptr [L0040102C]
  * ref: __vbaStrVarMove
 mov edx, eax
 lea ecx, dword ptr [ebp-1Ch]
 call dword ptr [L004012D0]
  * ref: __vbaStrMove
 lea ecx, dword ptr [ebp-48h]
 lea edx, dword ptr [ebp-38h]
 push ecx
 push edx
 push 2
 call dword ptr [L00401038]
  * ref: __vbaFreeVarList
 mov eax, dword ptr [ebp-1Ch]
 mov esi, dword ptr [L00401050]
  * ref: Asc(
 add esp, 0Ch
 push eax
 call esi
 mov ecx, dword ptr [ebp-1Ch]
 xor ebx, ebx
 cmp ax, 46h
 push ecx
 setg bl
 call esi
 xor edx, edx
 cmp ax, 41h
 setl dl
 or ebx, edx
 jnz L0050920F
 mov eax, dword ptr [ebp-1Ch]
 push eax
 call esi
 mov si, ax
 sub si, 37h
 jo L00509332
 jmp L0050923C
 
 L0050920F:
 mov ecx, dword ptr [ebp-1Ch]
 push ecx
 call esi
 cmp ax, 61h
 jl L00509230
 mov edx, dword ptr [ebp-1Ch]
 push edx
 call esi
 mov si, ax
 sub si, 57h
 jo L00509332
 jmp L0050923C
 
 L00509230:
 mov eax, dword ptr [ebp-1Ch]
 push eax
 call dword ptr [L004011D8]
  * ref: __vbaI2Str
 mov esi, eax
 
 L0050923C:
 mov ecx, dword ptr [ebp+8]
 mov edx, dword ptr [ecx]
 push edx
 call dword ptr [L00401028]
  * ref: __vbaLenBstr
 sub eax, edi
 jo L00509332
 mov dword ptr [ebp-7Ch], eax
 fild dword ptr [ebp-7Ch]
 fstp qword ptr [ebp-84h]
 mov eax, dword ptr [ebp-80h]
 mov ecx, dword ptr [ebp-84h]
 push eax
 push ecx
 push 40300000h
 push 0
 call dword ptr [L00401260]
  * ref: __vbaPowerR8
 movsx eax, word ptr [ebp-28h]
 movsx edx, si
 mov dword ptr [ebp-88h], edx
 mov dword ptr [ebp-94h], eax
 fild dword ptr [ebp-88h]
 fstp qword ptr [ebp-90h]
 fmul qword ptr [ebp-90h]
 fild dword ptr [ebp-94h]
 fstp qword ptr [ebp-9Ch]
 fadd qword ptr [ebp-9Ch]
 fnstsw ax
 test al, 0Dh
 jnz L0050932D
 call dword ptr [L004012A8]
  * ref: __vbaFpI2
 mov dword ptr [ebp-28h], eax
 mov eax, 1
 add ax, word ptr [ebp-18h]
 jo L00509332
 mov dword ptr [ebp-18h], eax
 jmp L0050916F
 
 L005092CD:
 mov ecx, dword ptr [ebp-28h]
 push ecx
 call dword ptr [L0040100C]
  * ref: __vbaStrI2
 mov edx, eax
 lea ecx, dword ptr [ebp-20h]
 call dword ptr [L004012D0]
  * ref: __vbaStrMove
 wait
 push L00509317
 jmp L0050930D
 test byte ptr [ebp-4], 4
 jz L005092F9
 lea ecx, dword ptr [ebp-20h]
 call dword ptr [L00401318]
  * ref: __vbaFreeStr
 
 L005092F9:
 lea edx, dword ptr [ebp-48h]
 lea eax, dword ptr [ebp-38h]
 push edx
 push eax
 push 2
 call dword ptr [L00401038]
  * ref: __vbaFreeVarList
 add esp, 0Ch
 ret
 
 L0050930D:
 lea ecx, dword ptr [ebp-1Ch]
 call dword ptr [L00401318]
  * ref: __vbaFreeStr
 ret
 
 L00509317:
 mov ecx, dword ptr [ebp-14h]
 mov eax, dword ptr [ebp-20h]
 pop edi
 pop esi
 mov dword ptr fs:[L00000000], ecx
 pop ebx
 mov esp, ebp
 pop ebp
 ret 4
 
 L0050932D:
 jmp L0041045C
  * ref: __vbaFPException
 
 L00509332:
 call dword ptr [L0040121C]
  * ref: __vbaErrorOverflow
End Sub