loc_00402CD0: push ebp
  loc_00402CD1: mov ebp, esp
  loc_00402CD3: sub esp, 0000000Ch
  loc_00402CD6: push 004011D6h ; __vbaExceptHandler
  loc_00402CDB: mov eax, fs:[00000000h]
  loc_00402CE1: push eax
  loc_00402CE2: mov fs:[00000000h], esp
  loc_00402CE9: sub esp, 00000158h
  loc_00402CEF: push ebx
  loc_00402CF0: push esi
  loc_00402CF1: push edi
  loc_00402CF2: mov var_C, esp
  loc_00402CF5: mov var_8, 00401148h
  loc_00402CFC: mov esi, arg_8
  loc_00402CFF: mov eax, esi
  loc_00402D01: and eax, 00000001h
  loc_00402D04: mov var_4, eax
  loc_00402D07: and esi, FFFFFFFEh
  loc_00402D0A: push esi
  loc_00402D0B: mov arg_8, esi
  loc_00402D0E: mov ecx, [esi]
  loc_00402D10: call [ecx+00000004h]
  loc_00402D13: mov edi, [00401078h] ; __vbaAryConstruct2
  loc_00402D19: push 00000008h
  loc_00402D1B: lea edx, var_4C
  loc_00402D1E: xor ebx, ebx
  loc_00402D20: push 00402104h
  loc_00402D25: push edx
  loc_00402D26: mov var_24, ebx
  loc_00402D29: mov var_34, ebx
  loc_00402D2C: mov var_70, ebx
  loc_00402D2F: mov var_74, ebx
  loc_00402D32: mov var_78, ebx
  loc_00402D35: mov var_7C, ebx
  loc_00402D38: mov var_80, ebx
  loc_00402D3B: mov var_84, ebx
  loc_00402D41: mov var_88, ebx
  loc_00402D47: mov var_8C, ebx
  loc_00402D4D: mov var_90, ebx
  loc_00402D53: mov var_94, ebx
  loc_00402D59: mov var_98, ebx
  loc_00402D5F: mov var_9C, ebx
  loc_00402D65: mov var_A0, ebx
  loc_00402D6B: mov var_A4, ebx
  loc_00402D71: mov var_A8, ebx
  loc_00402D77: mov var_AC, ebx
  loc_00402D7D: mov var_B0, ebx
  loc_00402D83: mov var_C0, ebx
  loc_00402D89: mov var_D0, ebx
  loc_00402D8F: mov var_E0, ebx
  loc_00402D95: mov var_F0, ebx
  loc_00402D9B: mov var_100, ebx
  loc_00402DA1: mov var_104, ebx
  loc_00402DA7: mov var_108, ebx
  loc_00402DAD: mov var_138, ebx
  loc_00402DB3: mov var_148, ebx
  loc_00402DB9: call edi
  loc_00402DBB: push 00000008h
  loc_00402DBD: lea eax, var_68
  loc_00402DC0: push 00402104h
  loc_00402DC5: push eax
  loc_00402DC6: call edi
  loc_00402DC8: mov eax, 00000002h
  loc_00402DCD: lea ecx, var_E0
  loc_00402DD3: mov var_E0, eax
  loc_00402DD9: mov var_E8, eax
  loc_00402DDF: mov var_F0, eax
  loc_00402DE5: mov var_100, eax
  loc_00402DEB: lea edx, var_F0
  loc_00402DF1: push ecx
  loc_00402DF2: lea eax, var_100
  loc_00402DF8: push edx
  loc_00402DF9: lea ecx, var_148
  loc_00402DFF: push eax
  loc_00402E00: lea edx, var_138
  loc_00402E06: push ecx
  loc_00402E07: lea eax, var_24
  loc_00402E0A: push edx
  loc_00402E0B: push eax
  loc_00402E0C: mov var_D8, 00000001h
  loc_00402E16: mov var_F8, ebx
  loc_00402E1C: call [00401048h] ; __vbaVarForInit
  loc_00402E22: mov edi, [0040110Ch] ; __vbaStrMove
  loc_00402E28: cmp eax, ebx
  loc_00402E2A: jz 00402FA3h
  loc_00402E30: mov ecx, [esi]
  loc_00402E32: push esi
  loc_00402E33: call [ecx+0000030Ch]
  loc_00402E39: lea edx, var_A4
  loc_00402E3F: push eax
  loc_00402E40: push edx
  loc_00402E41: call [0040104Ch] ; __vbaObjSet
  loc_00402E47: mov ebx, [eax]
  loc_00402E49: mov var_10C, eax
  loc_00402E4F: lea eax, var_A8
  loc_00402E55: lea ecx, var_24
  loc_00402E58: push eax
  loc_00402E59: push ecx
  loc_00402E5A: call [004010BCh] ; __vbaI2Var
  loc_00402E60: mov edx, ebx
  loc_00402E62: mov ebx, var_10C
  loc_00402E68: push eax
  loc_00402E69: push ebx
  loc_00402E6A: call [edx+00000040h]
  loc_00402E6D: test eax, eax
  loc_00402E6F: fnclex
  loc_00402E71: jge 00402E82h
  loc_00402E73: push 00000040h
  loc_00402E75: push 004020D4h
  loc_00402E7A: push ebx
  loc_00402E7B: push eax
  loc_00402E7C: call [00401034h] ; __vbaHresultCheckObj
  loc_00402E82: mov eax, var_A8
  loc_00402E88: lea edx, var_70
  loc_00402E8B: push edx
  loc_00402E8C: push eax
  loc_00402E8D: mov ecx, [eax]
  loc_00402E8F: mov ebx, eax
  loc_00402E91: call [ecx+000000A0h]
  loc_00402E97: test eax, eax
  loc_00402E99: fnclex
  loc_00402E9B: jge 00402EAFh
  loc_00402E9D: push 000000A0h
  loc_00402EA2: push 004020E4h
  loc_00402EA7: push ebx
  loc_00402EA8: push eax
  loc_00402EA9: call [00401034h] ; __vbaHresultCheckObj
  loc_00402EAF: mov eax, [esi]
  loc_00402EB1: push esi
  loc_00402EB2: call [eax+00000304h]
  loc_00402EB8: lea ecx, var_AC
  loc_00402EBE: push eax
  loc_00402EBF: push ecx
  loc_00402EC0: call [0040104Ch] ; __vbaObjSet
  loc_00402EC6: mov ebx, [eax]
  loc_00402EC8: mov var_11C, eax
  loc_00402ECE: lea edx, var_B0
  loc_00402ED4: lea eax, var_24
  loc_00402ED7: push edx
  loc_00402ED8: push eax
  loc_00402ED9: call [004010BCh] ; __vbaI2Var
  loc_00402EDF: mov ecx, ebx
  loc_00402EE1: mov ebx, var_11C
  loc_00402EE7: push eax
  loc_00402EE8: push ebx
  loc_00402EE9: call [ecx+00000040h]
  loc_00402EEC: test eax, eax
  loc_00402EEE: fnclex
  loc_00402EF0: jge 00402F01h
  loc_00402EF2: push 00000040h
  loc_00402EF4: push 004020D4h
  loc_00402EF9: push ebx
  loc_00402EFA: push eax
  loc_00402EFB: call [00401034h] ; __vbaHresultCheckObj
  loc_00402F01: mov eax, var_B0
  loc_00402F07: mov edx, var_70
  loc_00402F0A: push 00000000h
  loc_00402F0C: push edx
  loc_00402F0D: mov ebx, [eax]
  loc_00402F0F: mov var_124, eax
  loc_00402F15: call 00404510h
  loc_00402F1A: mov edx, eax
  loc_00402F1C: lea ecx, var_74
  loc_00402F1F: call edi
  loc_00402F21: push eax
  loc_00402F22: mov eax, var_124
  loc_00402F28: push eax
  loc_00402F29: call [ebx+000000A4h]
  loc_00402F2F: xor ebx, ebx
  loc_00402F31: cmp eax, ebx
  loc_00402F33: fnclex
  loc_00402F35: jge 00402F4Fh
  loc_00402F37: mov ecx, var_124
  loc_00402F3D: push 000000A4h
  loc_00402F42: push 004020E4h
  loc_00402F47: push ecx
  loc_00402F48: push eax
  loc_00402F49: call [00401034h] ; __vbaHresultCheckObj
  loc_00402F4F: lea edx, var_74
  loc_00402F52: lea eax, var_70
  loc_00402F55: push edx
  loc_00402F56: push eax
  loc_00402F57: push 00000002h
  loc_00402F59: call [004010E4h] ; __vbaFreeStrList
  loc_00402F5F: lea ecx, var_B0
  loc_00402F65: lea edx, var_AC
  loc_00402F6B: push ecx
  loc_00402F6C: lea eax, var_A8
  loc_00402F72: push edx
  loc_00402F73: lea ecx, var_A4
  loc_00402F79: push eax
  loc_00402F7A: push ecx
  loc_00402F7B: push 00000004h
  loc_00402F7D: call [00401024h] ; __vbaFreeObjList
  loc_00402F83: add esp, 00000020h
  loc_00402F86: lea edx, var_148
  loc_00402F8C: lea eax, var_138
  loc_00402F92: lea ecx, var_24
  loc_00402F95: push edx
  loc_00402F96: push eax
  loc_00402F97: push ecx
  loc_00402F98: call [00401120h] ; __vbaVarForNext
  loc_00402F9E: jmp 00402E28h
  loc_00402FA3: mov edx, [esi]
  loc_00402FA5: push ebx
  loc_00402FA6: push 00000015h
  loc_00402FA8: push esi
  loc_00402FA9: call [edx+00000314h]
  loc_00402FAF: push eax
  loc_00402FB0: lea eax, var_A4
  loc_00402FB6: push eax
  loc_00402FB7: call [0040104Ch] ; __vbaObjSet
  loc_00402FBD: lea ecx, var_C0
  loc_00402FC3: push eax
  loc_00402FC4: push ecx
  loc_00402FC5: call [0040108Ch] ; __vbaLateIdCallLd
  loc_00402FCB: add esp, 00000010h
  loc_00402FCE: lea edx, var_C0
  loc_00402FD4: lea eax, var_D0
  loc_00402FDA: push 00000002h
  loc_00402FDC: push edx
  loc_00402FDD: push eax
  loc_00402FDE: call [00401104h] ; rtcLeftCharVar
  loc_00402FE4: lea ecx, var_D0
  loc_00402FEA: push ecx
  loc_00402FEB: call [00401014h] ; __vbaStrVarMove
  loc_00402FF1: mov edx, eax
  loc_00402FF3: lea ecx, var_70
  loc_00402FF6: call edi
  loc_00402FF8: mov ecx, var_40
  loc_00402FFB: mov edx, eax
  loc_00402FFD: call [004010D8h] ; __vbaStrCopy
  loc_00403003: lea ecx, var_70
  loc_00403006: call [00401128h] ; __vbaFreeStr
  loc_0040300C: lea ecx, var_A4
  loc_00403012: call [0040112Ch] ; __vbaFreeObj
  loc_00403018: lea edx, var_D0
  loc_0040301E: lea eax, var_C0
  loc_00403024: push edx
  loc_00403025: push eax
  loc_00403026: push 00000002h
  loc_00403028: call [0040101Ch] ; __vbaFreeVarList
  loc_0040302E: mov ecx, [esi]
  loc_00403030: add esp, 0000000Ch
  loc_00403033: push ebx
  loc_00403034: push 00000015h
  loc_00403036: push esi
  loc_00403037: call [ecx+00000314h]
  loc_0040303D: lea edx, var_A4
  loc_00403043: push eax
  loc_00403044: push edx
  loc_00403045: call [0040104Ch] ; __vbaObjSet
  loc_0040304B: push eax
  loc_0040304C: lea eax, var_C0
  loc_00403052: push eax
  loc_00403053: call [0040108Ch] ; __vbaLateIdCallLd
  loc_00403059: add esp, 00000010h
  loc_0040305C: lea ecx, var_C0
  loc_00403062: lea edx, var_D0
  loc_00403068: push 00000002h
  loc_0040306A: push ecx
  loc_0040306B: push edx
  loc_0040306C: call [00401110h] ; rtcRightCharVar
  loc_00403072: lea eax, var_D0
  loc_00403078: push eax
  loc_00403079: call [00401014h] ; __vbaStrVarMove
  loc_0040307F: mov edx, eax
  loc_00403081: lea ecx, var_70
  loc_00403084: call edi
  loc_00403086: mov ecx, var_40
  loc_00403089: mov edx, eax
  loc_0040308B: add ecx, 00000004h
  loc_0040308E: call [004010D8h] ; __vbaStrCopy
  loc_00403094: lea ecx, var_70
  loc_00403097: call [00401128h] ; __vbaFreeStr
  loc_0040309D: lea ecx, var_A4
  loc_004030A3: call [0040112Ch] ; __vbaFreeObj
  loc_004030A9: lea edx, var_D0
  loc_004030AF: lea eax, var_C0
  loc_004030B5: push edx
  loc_004030B6: push eax
  loc_004030B7: push 00000002h
  loc_004030B9: call [0040101Ch] ; __vbaFreeVarList
  loc_004030BF: add esp, 0000000Ch
  loc_004030C2: mov ecx, [esi]
  loc_004030C4: push ebx
  loc_004030C5: push 0000000Fh
  loc_004030C7: push esi
  loc_004030C8: call [ecx+00000314h]
  loc_004030CE: lea edx, var_A4
  loc_004030D4: push eax
  loc_004030D5: push edx
  loc_004030D6: call [0040104Ch] ; __vbaObjSet
  loc_004030DC: push eax
  loc_004030DD: lea eax, var_C0
  loc_004030E3: push eax
  loc_004030E4: call [0040108Ch] ; __vbaLateIdCallLd
  loc_004030EA: add esp, 00000010h
  loc_004030ED: push eax
  loc_004030EE: call [00401014h] ; __vbaStrVarMove
  loc_004030F4: mov edx, eax
  loc_004030F6: lea ecx, var_70
  loc_004030F9: call edi
  loc_004030FB: mov ecx, var_40
  loc_004030FE: mov edx, eax
  loc_00403100: add ecx, 00000008h
  loc_00403103: call [004010D8h] ; __vbaStrCopy
  loc_00403109: lea ecx, var_70
  loc_0040310C: call [00401128h] ; __vbaFreeStr
  loc_00403112: lea ecx, var_A4
  loc_00403118: call [0040112Ch] ; __vbaFreeObj
  loc_0040311E: lea ecx, var_C0
  loc_00403124: call [00401010h] ; __vbaFreeVar
  loc_0040312A: mov edx, [esi]
  loc_0040312C: push ebx
  loc_0040312D: push 00000008h
  loc_0040312F: push esi
  loc_00403130: call [edx+00000314h]
  loc_00403136: push eax
  loc_00403137: lea eax, var_A4
  loc_0040313D: push eax
  loc_0040313E: call [0040104Ch] ; __vbaObjSet
  loc_00403144: lea ecx, var_C0
  loc_0040314A: push eax
  loc_0040314B: push ecx
  loc_0040314C: call [0040108Ch] ; __vbaLateIdCallLd
  loc_00403152: add esp, 00000010h
  loc_00403155: push eax
  loc_00403156: call [00401014h] ; __vbaStrVarMove
  loc_0040315C: mov edx, eax
  loc_0040315E: lea ecx, var_70
  loc_00403161: call edi
  loc_00403163: mov edx, eax
  loc_00403165: mov eax, var_40
  loc_00403168: lea ecx, [eax+0000000Ch]
  loc_0040316B: call [004010D8h] ; __vbaStrCopy
  loc_00403171: lea ecx, var_70
  loc_00403174: call [00401128h] ; __vbaFreeStr
  loc_0040317A: lea ecx, var_A4
  loc_00403180: call [0040112Ch] ; __vbaFreeObj
  loc_00403186: lea ecx, var_C0
  loc_0040318C: call [00401010h] ; __vbaFreeVar
  loc_00403192: mov ecx, var_40
  loc_00403195: mov edx, [ecx]
  loc_00403197: push edx
  loc_00403198: call [00401130h] ; rtcR8ValFromBstr
  loc_0040319E: call [00401100h] ; __vbaFpI4
  loc_004031A4: push eax
  loc_004031A5: call [004010C0h] ; rtcBstrFromAnsi
  loc_004031AB: mov edx, eax
  loc_004031AD: lea ecx, var_94
  loc_004031B3: call edi
  loc_004031B5: mov eax, var_40
  loc_004031B8: mov ecx, [eax+00000004h]
  loc_004031BB: push ecx
  loc_004031BC: call [00401130h] ; rtcR8ValFromBstr
  loc_004031C2: call [00401100h] ; __vbaFpI4
  loc_004031C8: push eax
  loc_004031C9: call [004010C0h] ; rtcBstrFromAnsi
  loc_004031CF: mov edx, eax
  loc_004031D1: lea ecx, var_98
  loc_004031D7: call edi
  loc_004031D9: mov edx, var_40
  loc_004031DC: mov eax, [edx+00000008h]
  loc_004031DF: push eax
  loc_004031E0: call [00401130h] ; rtcR8ValFromBstr
  loc_004031E6: call [00401100h] ; __vbaFpI4
  loc_004031EC: push eax
  loc_004031ED: call [004010C0h] ; rtcBstrFromAnsi
  loc_004031F3: mov edx, eax
  loc_004031F5: lea ecx, var_9C
  loc_004031FB: call edi
  loc_004031FD: mov ecx, var_40
  loc_00403200: mov edx, [ecx+0000000Ch]
  loc_00403203: push edx
  loc_00403204: call [00401130h] ; rtcR8ValFromBstr
  loc_0040320A: call [00401100h] ; __vbaFpI4
  loc_00403210: push eax
  loc_00403211: call [004010C0h] ; rtcBstrFromAnsi
  loc_00403217: mov edx, eax
  loc_00403219: lea ecx, var_A0
  loc_0040321F: call edi
  loc_00403221: mov eax, [esi]
  loc_00403223: push esi
  loc_00403224: call [eax+00000304h]
  loc_0040322A: lea ecx, var_A4
  loc_00403230: push eax
  loc_00403231: push ecx
  loc_00403232: call [0040104Ch] ; __vbaObjSet
  loc_00403238: mov edx, [eax]
  loc_0040323A: lea ecx, var_A8
  loc_00403240: push ecx
  loc_00403241: push 00000003h
  loc_00403243: push eax
  loc_00403244: mov var_11C, eax
  loc_0040324A: call [edx+00000040h]
  loc_0040324D: cmp eax, ebx
  loc_0040324F: fnclex
  loc_00403251: jge 00403268h
  loc_00403253: mov edx, var_11C
  loc_00403259: push 00000040h
  loc_0040325B: push 004020D4h
  loc_00403260: push edx
  loc_00403261: push eax
  loc_00403262: call [00401034h] ; __vbaHresultCheckObj
  loc_00403268: mov ecx, var_98
  loc_0040326E: mov eax, var_A8
  loc_00403274: mov edx, var_94
  loc_0040327A: mov var_15C, ecx
  loc_00403280: mov ecx, var_A0
  loc_00403286: mov var_124, eax
  loc_0040328C: mov eax, var_9C
  loc_00403292: mov var_164, ecx
  loc_00403298: lea ecx, var_70
  loc_0040329B: mov var_94, ebx
  loc_004032A1: mov var_98, ebx
  loc_004032A7: mov var_160, eax
  loc_004032AD: mov var_9C, ebx
  loc_004032B3: mov var_A0, ebx
  loc_004032B9: call edi
  loc_004032BB: mov edx, var_15C
  loc_004032C1: push eax
  loc_004032C2: lea ecx, var_74
  loc_004032C5: call edi
  loc_004032C7: push eax
  loc_004032C8: call [00401030h] ; __vbaStrCat
  loc_004032CE: mov edx, eax
  loc_004032D0: lea ecx, var_78
  loc_004032D3: call edi
  loc_004032D5: mov edx, var_160
  loc_004032DB: push eax
  loc_004032DC: lea ecx, var_7C
  loc_004032DF: call edi
  loc_004032E1: push eax
  loc_004032E2: call [00401030h] ; __vbaStrCat
  loc_004032E8: mov edx, eax
  loc_004032EA: lea ecx, var_80
  loc_004032ED: call edi
  loc_004032EF: mov edx, var_164
  loc_004032F5: push eax
  loc_004032F6: lea ecx, var_84
  loc_004032FC: call edi
  loc_004032FE: push eax
  loc_004032FF: call [00401030h] ; __vbaStrCat
  loc_00403305: mov edx, eax
  loc_00403307: lea ecx, var_88
  loc_0040330D: call edi
  loc_0040330F: mov edi, [esi]
  loc_00403311: lea edx, var_C0
  loc_00403317: lea eax, var_34
  loc_0040331A: push edx
  loc_0040331B: lea ecx, var_8C
  loc_00403321: push eax
  loc_00403322: push ecx
  loc_00403323: call [004010B4h] ; __vbaStrVarVal
  loc_00403329: lea edx, var_88
  loc_0040332F: push eax
  loc_00403330: push edx
  loc_00403331: push esi
  loc_00403332: call [edi+00000700h]
  loc_00403338: mov esi, var_124
  loc_0040333E: lea eax, var_C0
  loc_00403344: lea ecx, var_90
  loc_0040334A: push eax
  loc_0040334B: mov edi, [esi]
  loc_0040334D: push ecx
  loc_0040334E: call [004010B4h] ; __vbaStrVarVal
  loc_00403354: push eax
  loc_00403355: push esi
  loc_00403356: call [edi+000000A4h]
  loc_0040335C: cmp eax, ebx
  loc_0040335E: fnclex
  loc_00403360: jge 00403374h
  loc_00403362: push 000000A4h
  loc_00403367: push 004020E4h
  loc_0040336C: push esi
  loc_0040336D: push eax
  loc_0040336E: call [00401034h] ; __vbaHresultCheckObj
  loc_00403374: lea edx, var_A0
  loc_0040337A: lea eax, var_9C
  loc_00403380: push edx
  loc_00403381: lea ecx, var_98
  loc_00403387: push eax
  loc_00403388: lea edx, var_94
  loc_0040338E: push ecx
  loc_0040338F: lea eax, var_90
  loc_00403395: push edx
  loc_00403396: lea ecx, var_8C
  loc_0040339C: push eax
  loc_0040339D: lea edx, var_88
  loc_004033A3: push ecx
  loc_004033A4: lea eax, var_84
  loc_004033AA: push edx
  loc_004033AB: lea ecx, var_80
  loc_004033AE: push eax
  loc_004033AF: lea edx, var_7C
  loc_004033B2: push ecx
  loc_004033B3: lea eax, var_78
  loc_004033B6: push edx
  loc_004033B7: lea ecx, var_74
  loc_004033BA: push eax
  loc_004033BB: lea edx, var_70
  loc_004033BE: push ecx
  loc_004033BF: push edx
  loc_004033C0: push 0000000Dh
  loc_004033C2: call [004010E4h] ; __vbaFreeStrList
  loc_004033C8: lea eax, var_A8
  loc_004033CE: lea ecx, var_A4
  loc_004033D4: push eax
  loc_004033D5: push ecx
  loc_004033D6: push 00000002h
  loc_004033D8: call [00401024h] ; __vbaFreeObjList
  loc_004033DE: add esp, 00000044h
  loc_004033E1: lea ecx, var_C0
  loc_004033E7: call [00401010h] ; __vbaFreeVar
  loc_004033ED: mov var_4, ebx
  loc_004033F0: fwait
  loc_004033F1: push 004034E8h
  loc_004033F6: jmp 00403490h
  loc_004033FB: lea edx, var_A0
  loc_00403401: lea eax, var_9C
  loc_00403407: push edx
  loc_00403408: lea ecx, var_98
  loc_0040340E: push eax
  loc_0040340F: lea edx, var_94
  loc_00403415: push ecx
  loc_00403416: lea eax, var_90
  loc_0040341C: push edx
  loc_0040341D: lea ecx, var_8C
  loc_00403423: push eax
  loc_00403424: lea edx, var_88
  loc_0040342A: push ecx
  loc_0040342B: lea eax, var_84
  loc_00403431: push edx
  loc_00403432: lea ecx, var_80
  loc_00403435: push eax
  loc_00403436: lea edx, var_7C
  loc_00403439: push ecx
  loc_0040343A: lea eax, var_78
  loc_0040343D: push edx
  loc_0040343E: lea ecx, var_74
  loc_00403441: push eax
  loc_00403442: lea edx, var_70
  loc_00403445: push ecx
  loc_00403446: push edx
  loc_00403447: push 0000000Dh
  loc_00403449: call [004010E4h] ; __vbaFreeStrList
  loc_0040344F: lea eax, var_B0
  loc_00403455: lea ecx, var_AC
  loc_0040345B: push eax
  loc_0040345C: lea edx, var_A8
  loc_00403462: push ecx
  loc_00403463: lea eax, var_A4
  loc_00403469: push edx
  loc_0040346A: push eax
  loc_0040346B: push 00000004h
  loc_0040346D: call [00401024h] ; __vbaFreeObjList
  loc_00403473: add esp, 0000004Ch
  loc_00403476: lea ecx, var_D0
  loc_0040347C: lea edx, var_C0
  loc_00403482: push ecx
  loc_00403483: push edx
  loc_00403484: push 00000002h
  loc_00403486: call [0040101Ch] ; __vbaFreeVarList
  loc_0040348C: add esp, 0000000Ch
  loc_0040348F: ret
  loc_00403490: lea eax, var_148
  loc_00403496: lea ecx, var_138
  loc_0040349C: push eax
  loc_0040349D: push ecx
  loc_0040349E: push 00000002h
  loc_004034A0: call [0040101Ch] ; __vbaFreeVarList
  loc_004034A6: mov esi, [00401010h] ; __vbaFreeVar
  loc_004034AC: add esp, 0000000Ch
  loc_004034AF: lea ecx, var_24
  loc_004034B2: call __vbaFreeVar
  loc_004034B4: lea ecx, var_34
  loc_004034B7: call __vbaFreeVar
  loc_004034B9: mov esi, [00401044h] ; __vbaAryDestruct
  loc_004034BF: lea eax, var_104
  loc_004034C5: lea edx, var_4C
  loc_004034C8: push eax
  loc_004034C9: push 00000000h
  loc_004034CB: mov var_104, edx
  loc_004034D1: call __vbaAryDestruct
  loc_004034D3: lea edx, var_108
  loc_004034D9: lea ecx, var_68
  loc_004034DC: push edx
  loc_004034DD: push 00000000h
  loc_004034DF: mov var_108, ecx
  loc_004034E5: call __vbaAryDestruct
  loc_004034E7: ret
  loc_004034E8: mov eax, arg_8
  loc_004034EB: push eax
  loc_004034EC: mov ecx, [eax]
  loc_004034EE: call [ecx+00000008h]
  loc_004034F1: mov eax, var_4
  loc_004034F4: mov ecx, var_14
  loc_004034F7: pop edi
  loc_004034F8: pop esi
  loc_004034F9: mov fs:[00000000h], ecx
  loc_00403500: pop ebx
  loc_00403501: mov esp, ebp
  loc_00403503: pop ebp
  loc_00403504: retn 0004h 

Visual basic (VB.net) Online Compiler

Write, Run & Share VB.net code online using OneCompiler's VB.net online compiler for free. It's one of the robust, feature-rich online compilers for VB.net language, running on the latest version 16. Getting started with the OneCompiler's VB.net compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as VB.net. OneCompiler also has reference programs, where you can look for the sample code to get started with.

Read input from STDIN in VB.net

OneCompiler's VB.net online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample VB.net program which takes name as input and prints hello message with your name.

Public Module Program
	Public Sub Main(args() As string)
	 Dim name as String = Console.ReadLine()    ' Reading input from STDIN
   Console.WriteLine("Hello " & name)           ' Writing output to STDOUT
	End Sub
End Module

About VB.net

Visual Basic is a event driven programming language by Microsoft, first released in the year 1991.

Key Features

  • Beginner's friendly language.
  • Simple and object oriented programming language.
  • User friendly language and easy to develop GUI based applications.

Syntax help

Variables

Variable is a name given to the storage area in order to identify them in our programs.

Simple syntax of Variable declaration is as follows

Dim variableName [ As [ New ] dataType ] [ = initializer ]

Variable initialization

variableName = value

Conditional Statements

1. If

If condition-expression Then 
    'code
End If

2. If-else

If(conditional-expression)Then
   'code if the conditional-expression is true 
Else
  'code if the conditional-expression is false 
End If

3. If-else-if ladder

If(conditional-expression)Then
   'code if the above conditional-expression is true 
Else If(conditional-expression) Then
        'code if the above conditional-expression is true 
    Else
        'code if the above conditional-expression is false 
End If

4. Nested-If

If(conditional-expression)Then
   'code if the above conditional-expression is true
   If(conditional-expression)Then
         'code if the above conditional-expression is true 
   End If
End If

5. Select Case

Select [ Case ] expression
   [ Case expressionlist
      'code ]
   [ Case Else
      'code ]
End Select

Loops

1. For..Next

For counter [ As datatype ] = begin To end [ Step step ]
   'code
   [ Continue For ]
   'code
   [ Exit For ]
   'code
Next [ counter ]

2. For..Each

For Each element [ As datatype ] In group
   'code
   [ Continue For ]
   'code
   [ Exit For ]
   'code
Next [ element ]

3. While

While conditional-expression
   'Code 
   [ Continue While ]
   'Code
   [ Exit While ]
   'Code
End While

4. Do-while

Do { While | Until } conditional-expression
   'Code
   [ Continue Do ]
   'Code
   [ Exit Do ]
   'Code
Loop
Do
   'Code
   [ Continue Do ]
   'Code
   [ Exit Do ]
   'Code
Loop { While | Until } conditional-expression

Procedures

Procedure is a sub-routine which contains set of statements. Usually Procedures are written when multiple calls are required to same set of statements which increases re-usuability and modularity.

Procedures are of two types.

1. Functions

Functions return a value when they are called.

[accessModifiers] Function functionName [(parameterList)] As returnType
   'code
End Function

2. Sub-Procedures

Sub-procedures are similar to functions but they don't return any value.

Sub ProcedureName (parameterList)
'Code
End Sub