Function at 0x416350
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
xor ecx, ecx
push ebx
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [eax]
push ebp
cmp eax, 3
push esi
setne cl
xor edx, edx
cmp eax, 2
setne dl
and ecx, edx
push edi
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, 1
setne dl
test edx, ecx
jne 0x416468
mov ecx, dword [0x42a0ac]
sub ecx, 1
jo 0x416685
call dword [sym.imp.MSVBVM60.DLL___vbaI2I4]
xor ebp, ebp
mov dword [esp + 0x10], eax
test ax, ax
jl 0x416468
mov eax, dword [0x42a0a8]
test eax, eax
je 0x4163da
cmp word [eax], 1
jne 0x4163da
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
movsx esi, bp
sub esi, edx
cmp esi, ecx
jb 0x4163d2
call ebx
mov eax, dword [0x42a0a8]
lea edi, [esi + esi*2]
shl edi, 3
jmp 0x4163e3
call ebx
mov edi, eax
mov eax, dword [0x42a0a8]
test eax, eax
je 0x41640b
cmp word [eax], 1
jne 0x41640b
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
movsx esi, bp
sub esi, edx
cmp esi, ecx
jb 0x416403
call ebx
mov eax, dword [0x42a0a8]
lea esi, [esi + esi*2]
shl esi, 3
jmp 0x416414
call ebx
mov esi, eax
mov eax, dword [0x42a0a8]
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + edi + 4]
mov eax, dword [edx]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaStrTextCmp]
mov edi, eax
mov eax, dword [0x42a0a8]
neg edi
mov edx, dword [eax + 0xc]
sbb edi, edi
xor ecx, ecx
mov cl, byte [edx + esi]
mov esi, dword [esp + 0x1c]
neg edi
xor edx, edx
cmp ecx, dword [esi]
setne dl
or edi, edx
je 0x41667d
add bp, 1
jo 0x416685
cmp bp, word [esp + 0x10]
jle 0x4163b2
jmp 0x41646d
mov eax, dword [0x42a0a8]
push eax
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaUbound]
mov ecx, eax
call dword [sym.imp.MSVBVM60.DLL___vbaI2I4]
mov edx, dword [0x42a0ac]
movsx ecx, ax
cmp ecx, edx
jge 0x4164ba
add ax, 0xa
push 0
jo 0x416685
movsx edx, ax
push edx
push 1
push 0x405bc8
push 0x42a0a8
push 0x18
push 0
call dword [sym.imp.MSVBVM60.DLL___vbaRedimPreserve]
mov edx, dword [0x42a0ac]
add esp, 0x1c
mov ecx, dword [0x42a0a8]
test ecx, ecx
je 0x4164e8
cmp word [ecx], 1
jne 0x4164e8
mov esi, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
sub edx, esi
mov esi, edx
cmp esi, eax
jb 0x4164e0
call ebx
mov ecx, dword [0x42a0a8]
lea eax, [esi + esi*2]
shl eax, 3
jmp 0x4164f0
call ebx
mov ecx, dword [0x42a0a8]
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx + 0xc]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
mov edx, dword [edx]
lea ecx, [ecx + eax + 4]
call edi
mov eax, dword [0x42a0a8]
test eax, eax
je 0x416530
cmp word [eax], 1
jne 0x416530
mov esi, dword [0x42a0ac]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
sub esi, edx
cmp esi, ecx
jb 0x416528
call ebx
lea esi, [esi + esi*2]
shl esi, 3
jmp 0x416534
call ebx
mov esi, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I4]
mov ecx, dword [0x42a0a8]
mov edx, dword [ecx + 0xc]
mov byte [edx + esi], al
mov ecx, dword [0x42a0a8]
test ecx, ecx
je 0x41657e
cmp word [ecx], 1
jne 0x41657e
mov esi, dword [0x42a0ac]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
sub esi, edx
cmp esi, eax
jb 0x416576
call ebx
mov ecx, dword [0x42a0a8]
lea eax, [esi + esi*2]
shl eax, 3
jmp 0x416586
call ebx
mov ecx, dword [0x42a0a8]
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx + 0xc]
mov edx, dword [edx]
mov dword [ecx + eax + 8], edx
mov ecx, dword [0x42a0a8]
test ecx, ecx
je 0x4165c5
cmp word [ecx], 1
jne 0x4165c5
mov esi, dword [0x42a0ac]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
sub esi, edx
cmp esi, eax
jb 0x4165bd
call ebx
mov ecx, dword [0x42a0a8]
lea eax, [esi + esi*2]
shl eax, 3
jmp 0x4165cd
call ebx
mov ecx, dword [0x42a0a8]
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + 0xc]
mov edx, dword [edx]
lea ecx, [ecx + eax + 0xc]
call edi
mov ecx, dword [0x42a0a8]
test ecx, ecx
je 0x41660e
cmp word [ecx], 1
jne 0x41660e
mov esi, dword [0x42a0ac]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
sub esi, edx
cmp esi, eax
jb 0x416606
call ebx
mov ecx, dword [0x42a0a8]
lea eax, [esi + esi*2]
shl eax, 3
jmp 0x416616
call ebx
mov ecx, dword [0x42a0a8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov dword [edx + eax + 0x14], ecx
mov ecx, dword [0x42a0a8]
test ecx, ecx
je 0x416655
cmp word [ecx], 1
jne 0x416655
mov esi, dword [0x42a0ac]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
sub esi, edx
cmp esi, eax
jb 0x41664d
call ebx
mov ecx, dword [0x42a0a8]
lea eax, [esi + esi*2]
shl eax, 3
jmp 0x41665d
call ebx
mov ecx, dword [0x42a0a8]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0xc]
mov edx, dword [edx]
lea ecx, [ecx + eax + 0x10]
call edi
mov edx, dword [0x42a0ac]
add edx, 1
jo 0x416685
mov dword [0x42a0ac], edx
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop
nop