Function at 0x502e00
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x4054c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x404698
mov eax, dword [0x54a708]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
lea ecx, [ebp - 0x1c]
xor ebx, ebx
push eax
push ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
call esi
mov ecx, dword [ebp - 0x1c]
movsx eax, word [0x54b27c]
sub eax, dword [ecx + 0x14]
mov edx, eax
shl edx, 6
add edx, eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + edx*4 + 0x100]
lea edx, [ebp - 0x18]
push ecx
push edx
call esi
mov ecx, dword [ebp - 0x18]
movsx eax, word [0x54b280]
sub eax, dword [ecx + 0x14]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [ecx + 0xc]
shl edx, 4
mov ecx, dword [edx + eax + 0x10]
lea edx, [ebp - 0x14]
push ecx
push edx
call esi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
sub eax, dword [ecx + 0x14]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [ecx + 0xc]
lea esi, [eax + edx*4]
xor edx, edx
lea edi, [esi + 0x10]
mov dword [esi + 8], ebx
mov ecx, edi
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
movsx eax, word [esi + 6]
add eax, 0xb
mov byte [esi + 0xc], bl
cmp eax, 0xa
mov byte [esi + 0xd], bl
mov byte [esi + 0xe], bl
mov word [esi + 4], bx
ja case.default.0x502ed7
jmp dword [eax*4 + 0x503090]
mov word [esi + 6], 0xfffe
jmp 0x503006
mov word [esi + 6], 0xfffd
jmp 0x503006
push 1
push 3
push 1
lea ecx, [esi + 0x18]
push ebx
push ecx
push 8
push ebx
mov word [esi + 6], 0xfffc
call dword [sym.imp.MSVBVM60.DLL___vbaRedim]
add esp, 0x1c
jmp 0x503006
lea edx, [esi + 0x18]
mov word [esi + 6], 0xfffb
push edx
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
jmp 0x503006
mov edx, 0x4293c8
mov ecx, edi
mov word [esi + 6], 0xfffa
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
lea eax, [esi + 0x14]
push eax
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
push 1
push 2
push 1
lea ecx, [esi + 0x18]
push ebx
push ecx
push 8
push ebx
mov byte [esi + 3], bl
call dword [sym.imp.MSVBVM60.DLL___vbaRedim]
add esp, 0x1c
jmp 0x503006
lea edx, [esi + 0x18]
mov word [esi + 6], 0xfff9
push edx
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
jmp 0x503006
mov word [esi + 6], 0xfff8
jmp 0x503006
push 1
mov word [esi + 6], 0xfff7
push 1
jmp 0x502fcd
push 1
push 1
lea edi, [esi + 0x18]
push 1
push ebx
push edi
push 8
push ebx
mov word [esi + 6], 0xfff6
call dword [sym.imp.MSVBVM60.DLL___vbaRedim]
mov edi, dword [edi]
add esp, 0x1c
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0xc]
shl ecx, 3
sub edx, ecx
mov byte [edx + 8], 1
jmp 0x503006
push 1
mov word [esi + 6], 0xfff5
push 9
push 1
lea eax, [esi + 0x18]
push ebx
push eax
push 8
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaRedim]
add esp, 0x1c
jmp 0x503006
lea ecx, [esi + 0x18]
mov word [esi + 6], bx
push ecx
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
jmp 0x503006
mov edx, 0x4273d0
mov ecx, edi
mov word [esi + 6], 0xffff
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
mov al, byte [esi]
cmp al, bl
mov ax, word [esi + 6]
jne 0x503033
cmp ax, 0xfffe
je 0x50302e
cmp ax, 0xfff9
je 0x50302e
cmp ax, 0xfff7
je 0x50302e
cmp ax, 0xfff6
je 0x50302e
cmp ax, 0xffff
jle 0x503047
mov byte [esi], 1
jmp 0x503047
cmp ax, 0xfffb
je 0x503045
cmp ax, 0xfffa
je 0x503045
cmp ax, 0xfff5
jne 0x503047
mov byte [esi], bl
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
lea edx, [ebp - 0x14]
push edx
call esi
lea eax, [ebp - 0x18]
push eax
call esi
lea ecx, [ebp - 0x1c]
push ecx
call esi
push 0x50307d
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
lea edx, [ebp - 0x14]
push edx
call esi
lea eax, [ebp - 0x18]
push eax
call esi
lea ecx, [ebp - 0x1c]
push ecx
call esi
ret