Function at 0x551c20
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x40cd06
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x40c910
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x64], ebx
xor esi, esi
mov eax, 2
cmp esi, eax
jg 0x551caa
mov eax, dword [0x56133c]
mov edx, 0x4299a8
lea ecx, [eax + esi*4]
call edi
mov ecx, dword [0x561358]
mov edx, 0x4299a8
lea ecx, [ecx + esi*4]
call edi
mov eax, 1
add eax, esi
jo 0x552017
mov esi, eax
jmp 0x551c71
cmp word [0x561248], bx
je 0x551fb1
lea edx, [ebp - 0x20]
push 1
push edx
push 0x561184
push 0x80000001
call fcn.0049e4d0
test eax, eax
jle 0x551fb1
mov eax, dword [ebp - 0x20]
push eax
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaUbound]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCmp]
add eax, 1
mov dword [ebp - 0x70], 1
jo 0x552017
sub eax, 1
mov dword [ebp - 0x14], ebx
jo 0x552017
mov dword [ebp - 0x74], eax
cmp ebx, dword [ebp - 0x74]
jg 0x551fb1
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x54], 0x428db4
mov dword [ebp - 0x5c], 8
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
mov eax, dword [ebp - 0x20]
push 0
lea ecx, [ebp - 0x3c]
push 0xffffffffffffffff
mov edx, dword [eax + 0x14]
push ecx
sub ebx, edx
mov edx, dword [eax + 0xc]
lea ecx, [ebp - 0x4c]
mov eax, dword [edx + ebx*4]
push eax
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcSplit]
lea edx, [ebp - 0x4c]
push edx
push 0x2008
call dword [sym.imp.MSVBVM60.DLL___vbaAryVar]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x24]
push eax
push ecx
call dword [sym.imp.MSVBVM60.DLL___vbaAryCopy]
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x3c]
push edx
push eax
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
mov ecx, dword [ebp - 0x24]
add esp, 0xc
lea edx, [ebp - 0x28]
push ecx
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x60], 0x80000001
mov ecx, 2
mov ebx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ecx, ebx
lea eax, [edx + ecx*4]
lea ecx, [ebp - 0x60]
push eax
push 0x561184
push ecx
call fcn.0049d610
mov edx, eax
lea ecx, [ebp - 0x2c]
call esi
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x2c], 0
call esi
mov eax, dword [ebp - 0x1c]
push eax
push 0x42e894
call edi
mov ecx, dword [ebp - 0x1c]
mov ebx, eax
neg ebx
sbb ebx, ebx
push ecx
push 0x4299a8
inc ebx
call edi
neg eax
sbb eax, eax
inc eax
or ebx, eax
jne 0x551f9f
mov eax, dword [ebp - 0x24]
mov edx, 2
push 3
mov ebx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
sub edx, ebx
mov ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcLeftCharBstr]
mov edx, eax
lea ecx, [ebp - 0x2c]
call esi
push eax
call dword [sym.imp.MSVBVM60.DLL_rtcLowerCaseBstr]
mov edx, eax
lea ecx, [ebp - 0x64]
call esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
mov edx, dword [ebp - 0x64]
push edx
push 0x43a2ec
call edi
test eax, eax
jne 0x551ec2
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0052bad0
test ax, ax
je 0x551f9f
mov ecx, dword [ebp - 0x1c]
push 0
push ecx
call fcn.0052e5c0
mov edx, eax
lea ecx, [ebp - 0x1c]
call esi
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 0x28]
push edx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov eax, dword [ebp - 0x28]
mov ecx, 2
push 0x428db4
mov edx, dword [eax + 0x14]
sub ecx, edx
mov edx, dword [eax + 0xc]
lea eax, [edx + ecx*4]
mov ecx, dword [0x561358]
push eax
push ecx
call fcn.004a4e10
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
mov ecx, dword [0x56133c]
lea eax, [ebp - 0x1c]
push 0x428db4
push eax
push ecx
jmp 0x551f9a
mov edx, dword [ebp - 0x64]
push edx
push 0x43a2f8
call edi
test eax, eax
jne 0x551f38
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0052ba20
test ax, ax
je 0x551f9f
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x28]
push ecx
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov eax, dword [ebp - 0x28]
mov ecx, 2
push 0x428db4
mov edx, dword [eax + 0x14]
sub ecx, edx
mov edx, dword [eax + 0xc]
lea eax, [edx + ecx*4]
mov ecx, dword [0x561358]
add ecx, 4
push eax
push ecx
call fcn.004a4e10
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
mov ecx, dword [0x56133c]
lea eax, [ebp - 0x1c]
push 0x428db4
add ecx, 4
push eax
push ecx
jmp 0x551f9a
mov edx, dword [ebp - 0x64]
push edx
push 0x43a304
call edi
test eax, eax
jne 0x551f9f
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
push eax
push ecx
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov eax, dword [ebp - 0x28]
mov edx, 2
push 0x428db4
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
sub edx, ecx
lea ecx, [eax + edx*4]
mov edx, dword [0x561358]
add edx, 8
push ecx
push edx
call fcn.004a4e10
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
mov edx, dword [0x56133c]
lea ecx, [ebp - 0x1c]
push 0x428db4
add edx, 8
push ecx
push edx
call fcn.004a4e10
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x14]
add ebx, eax
jo 0x552017
mov dword [ebp - 0x14], ebx
jmp 0x551d0b
push 0x552006
jmp 0x551fdf
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea ecx, [ebp - 0x64]
call esi
lea ecx, [ebp - 0x1c]
call esi
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaAryDestruct]
lea eax, [ebp - 0x20]
push eax
push 0
call esi
lea ecx, [ebp - 0x24]
push ecx
push 0
call esi
ret
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop