Function at 0x422340
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x402f96
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
push esi
push edi
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], 0x401c90
xor edi, edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], edi
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaOnError]
cmp dword [0x43db94], edi
jne 0x42239a
push 0x43db94
push 0x408170
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov esi, dword [0x43db94]
mov eax, dword [esi]
lea ecx, [ebp - 0x28]
push ecx
push esi
call dword [eax + 0x18]
fnclex
cmp eax, edi
jge 0x4223bf
push 0x18
push 0x408160
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov esi, dword [ebp - 0x28]
mov edi, dword [esi]
mov ecx, 0xb
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaI2I4]
call ebx
push eax
push esi
call dword [edi + 0x7c]
fnclex
test eax, eax
jge 0x4223eb
push 0x7c
push 0x408ab4
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
mov edi, 0x43d010
mov edx, dword [0x43d010]
push edx
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaUbound]
mov ecx, eax
call ebx
mov dword [ebp - 0x20], eax
xor ebx, ebx
cmp bx, word [ebp - 0x20]
jg 0x42250b
mov eax, dword [edi + 4]
test eax, eax
je 0x422442
cmp word [eax], 1
jne 0x422442
movsx esi, bx
sub esi, dword [eax + 0x14]
cmp esi, dword [eax + 0x10]
jb 0x422439
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea eax, [esi*4]
jmp 0x422448
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + eax]
cmp eax, dword [0x43d034]
jne 0x4224f6
mov eax, dword [edi]
test eax, eax
je 0x422483
cmp word [eax], 1
jne 0x422483
movsx esi, bx
sub esi, dword [eax + 0x14]
cmp esi, dword [eax + 0x10]
jb 0x42247a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea eax, [esi*4]
jmp 0x422489
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + eax]
push eax
call fcn.00407214
mov dword [ebp - 0x3c], eax
call dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4224f6
mov dword [ebp - 0x3c], 0
mov eax, dword [edi]
test eax, eax
je 0x4224d4
cmp word [eax], 1
jne 0x4224d4
movsx esi, bx
sub esi, dword [eax + 0x14]
cmp esi, dword [eax + 0x10]
jb 0x4224cb
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea eax, [esi*4]
jmp 0x4224da
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea ecx, [ebp - 0x3c]
push ecx
push 0
push 0x10
mov edx, dword [edi]
mov ecx, dword [edx + 0xc]
mov edx, dword [ecx + eax]
push edx
call fcn.00407ae4
call dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
mov eax, 1
add ax, bx
jo 0x422607
mov ebx, eax
jmp 0x422411
call dword [sym.imp.MSVBVM60.DLL_rtcDoEvents]
push 0x3e8
call fcn.004072a8
call dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
mov eax, dword [0x43db94]
test eax, eax
jne 0x42253a
push 0x43db94
push 0x408170
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov esi, dword [0x43db94]
mov eax, dword [esi]
lea ecx, [ebp - 0x28]
push ecx
push esi
call dword [eax + 0x18]
fnclex
test eax, eax
jge 0x42255f
push 0x18
push 0x408160
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov esi, dword [ebp - 0x28]
mov edi, dword [esi]
xor ecx, ecx
call dword [sym.imp.MSVBVM60.DLL___vbaI2I4]
push eax
push esi
call dword [edi + 0x7c]
fnclex
test eax, eax
jge 0x422586
push 0x7c
push 0x408ab4
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
lea ecx, [ebp - 0x28]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
call edi
mov ebx, dword [sym.imp.MSVBVM60.DLL_rtcErrObj]
call ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], 9
lea edx, [ebp - 0x38]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaBoolVarNull]
mov esi, eax
lea ecx, [ebp - 0x38]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
test si, si
je 0x4225d5
call ebx
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
lea ecx, [ebp - 0x28]
call edi
call dword [sym.imp.MSVBVM60.DLL___vbaExitProc]
push 0x4225f6
jmp 0x4225f5
ret
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop